GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ist mv mit Wildcard noch atomar

Lösung 1:

Beginnen wir mit der Aussage, dass mv ist nicht immer atomar.

Lassen Sie uns auch feststellen, dass sich die Atomarität auf den Dateiinhalt bezieht, nicht auf den Dateinamen.

Für jede einzelne Datei wird das Verschieben oder Umbenennen von mv durchgeführt ist atomar, vorausgesetzt, dass die Datei innerhalb desselben Dateisystems verschoben wird. Die Atomarität garantiert nicht, dass sich die Datei nur an der einen oder anderen Stelle befindet; es ist durchaus möglich, dass die Datei "kurzzeitig" an beiden Stellen gleichzeitig im Dateisystem vorhanden ist. Was Atomity garantiert, wenn es angeboten wird, ist, dass der Dateiinhalt sofort vollständig und nicht teilweise verfügbar ist. Das können Sie sich vorstellen mv hätte in solchen Situationen mit ln implementiert werden können gefolgt von rm .

mv ist definitiv nicht atomar, wenn die Verschiebung von einem Dateisystem zu einem anderen erfolgt oder wenn ein entferntes Dateisystem den mv nicht implementieren kann Betrieb vor Ort. In diesen Fällen mv könnte man sagen, dass es durch das Äquivalent von cp implementiert wird gefolgt von rm .

Kommen wir nun zur Frage der Atomarität über mehrere Dateien hinweg. mv ist bestenfalls nur pro Datei atomar. Wenn Sie also mehrere Dateien zusammen verschieben müssen, ist die Implementierung so, dass sie einzeln verschoben werden. Wenn Sie möchten, mv file1 dir; mv file2 dir; mv file3 dir .

Wenn Sie wirklich eine Gruppe von Dateien benötigen, die gleichzeitig an einem Zielort erscheinen sollen, ziehen Sie in Betracht, sie in ein Verzeichnis zu legen und dieses Verzeichnis zu verschieben. Dieses einzelne Objekt (das Verzeichnis) kann atomar verschoben werden.

Lösung 2:

Nr. mv dir1/* ist dasselbe wie mv dir1/file1 && mv dir1/file2 && mv dir1/fileN . Jeder einzelne Zug ist atomar, aber nicht der vollständige Satz.


Linux
  1. Spielen Linux-Distributionen bei Containern noch eine Rolle?

  2. Sortierbefehl in Linux mit Beispielen

  3. Erste Schritte mit ls

  4. Dd Vs Cat – Ist Dd heutzutage noch relevant?

  5. Vim:Datei mit +x Bit erstellen?

Linux-Tail-Befehl mit Beispielen

Linux-WC-Befehl mit Beispielen

Finden Sie verlorene Dateien mit Scalpel

Digitale Signaturen mit GnuPG

Arbeite immer noch mit Gnome-Boxen

Plotten Sie die .gnu-Datei mit gnuplot