MV: Verschieben zwischen Geräten macht das Verschieben eines Verzeichnisses in ein Verzeichnis mit demselben Namen eine andere Operation?


7

Gegeben:

# mv / mnt / hard / git-src / / usr / portage / distfiles /

mv: Verschieben zwischen Geräten fehlgeschlagen: /mnt/hard/git-src/' to / usr / portage / distfiles / git-src '; Ziel kann nicht entfernt werden: Ist ein Verzeichnis

Und

cd / tmp; mkdir ab; mdkir a / cb / c;

Berühren Sie a / c / 1 b / c / 1

mv a / cb / mv: kann a/c' tob / c ' nicht verschieben : Datei existiert

rm a / c / 1 b / c / 1

mv a / cb /

Wenn Sie also ein Verzeichnis in ein Verzeichnis mit demselben Namen verschieben, das ähnliche Dateien enthält, heißt das: "Datei existiert". Was nützt es, es als "Verschiebung zwischen Geräten" zu kennzeichnen, wenn verschiedene Partitionen verwendet werden?


Antworten:


8

mvauf demselben Dateisystem bedeutet, einen einzelnen Verzeichniseintrag von einem Verzeichnis in ein anderes zu verschieben. mvÜber Dateisysteme hinweg bedeutet, den gesamten Quellbaum zu kopieren und die Quelldateien nach dem Kopieren zu entfernen. Der Algorithmus und der Code unterscheiden sich in beiden Fällen, ebenso wie viele der Fehlermodi. Dies mvmacht in der Fehlermeldung deutlich, wenn ein dateisystemübergreifender Wechsel durchgeführt wird.

(In diesem Fall handelt es sich bei demselben Dateisystem um einen renameSystemaufruf, der einen Fehler zurückgibt. Bei einer Verschiebung zwischen Dateisystemen handelt es sich um einen mkdirAufruf, der Teil der Neuerstellung des Verzeichnisbaums ist.)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.