mv: inter-device move macht das Verschieben eines Verzeichnisses in ein Verzeichnis mit demselben Namen eine andere Operation?

12556
kagali-san

Gegeben:

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

mv: Verschiebung zwischen Geräten ist 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 sich nicht bewegen a/c' to b / c ' : Datei ist vorhanden

rm a / c / 1 b / c / 1

mv a / cb /

Das Verschieben eines Verzeichnisses in ein Verzeichnis mit demselben Namen lautet, wenn sie ähnliche Dateien enthalten, 'Datei vorhanden'. Was ist der Punkt, wenn es bei der Verwendung verschiedener Partitionen "Verschieben zwischen Geräten" markiert wird?

7
Verwandte: [Dateien von einem Gerät auf ein anderes verschieben] (http://serverfault.com/q/502795/130437) bei SF kenorb vor 8 Jahren 0

1 Antwort auf die Frage

8
Gilles

mvim gleichen Dateisystem bedeutet, einen einzelnen Verzeichniseintrag von einem Verzeichnis in ein anderes zu verschieben. mvDateisystemübergreifend bedeutet, die gesamte Quellstruktur zu kopieren und Quelldateien nach dem Kopieren zu entfernen. Der Algorithmus und der Code unterscheiden sich in beiden Fällen, wie auch bei vielen Fehlermodi. Daher wird mvin der Fehlermeldung deutlich, wann sich das Dateisystem wechselt.

(Hier wird auf demselben Dateisystem ein renameSystemaufruf zurückgegeben, der einen Fehler zurückgibt. Bei einer Dateisystemverschiebung handelt es sich um einen mkdirAufruf als Teil der Neuerstellung der Verzeichnisstruktur.)