In welcher Reihenfolge werden Dateien und Verzeichnisse bei Verwendung von Linux cp -R kopiert?

11

Wenn ich den folgenden Befehl ausführe:

cp -R /myfiles /mydestination

Wenn es myfilesmehrere Unterverzeichnisse und Dateien enthält, in welcher Reihenfolge werden diese kopiert?

Beispielsweise könnten Verzeichnisse benannt werden 0123a, 9993c, myfolder, xfolder.

lsSoweit ich das beurteilen kann, werden sie nicht in alphabetischer Reihenfolge ODER in Datumsreihenfolge ODER in der Reihenfolge kopiert, in der sie bei Verwendung eines Standardbefehls angezeigt werden. Was bestimmt also tatsächlich die Reihenfolge?

Bearbeiten: Ich versuche, die Reihenfolge zu bestimmen, die der Befehl cp verwendet, um festzustellen, wie weit mein Kopierbefehl vor dem Stoppen zurückgelegt hat. Ich hatte zum Beispiel gehofft, feststellen zu können, dass 3 der 4 Verzeichnisse erfolgreich kopiert wurden.

Scott Szretter
quelle
Denken Sie daran, dass der lsBefehl den Verzeichnisinhalt standardmäßig sortiert, bevor er angezeigt wird . Was Sie gedruckt sehen, lsist nicht die tatsächliche Reihenfolge der Verzeichnisaufzählung.
JdeBP
1
Verwenden Sie ls -Udiese Option, um die unsortierte Verzeichnisreihenfolge abzurufen. Dies sollte die Reihenfolge sein, die cpverwendet wird. Wenn Sie mehr Kontrolle über Fortschritt, Reihenfolge usw. benötigen, ist dies möglicherweise cpnicht das richtige Werkzeug für diesen Job.
Daniel Andersson

Antworten:

2

Die Reihenfolge, in der sie im Dateisystem gespeichert / zurückgegeben werden. Bei "unsortierten" Dateisystemen ist dies im Allgemeinen die Erstellungsreihenfolge. Für "sortierte" Dateisysteme (z. B. ext3 / 4 mit dir_index) ist dies die Reihenfolge, die im Dateisystemindex verwendet wird.

Ignacio Vazquez-Abrams
quelle
Bei nicht indizierten Dateisystemformaten ist es etwas komplexer, wenn Verzeichniseinträge gelöscht und erstellt wurden. (-:
JdeBP
11

Wir hatten genau das gleiche Problem. Wir kopieren große Datenmengen auf und von USB-Laufwerken, und es ist ärgerlich, nicht sagen zu können, wie weit der Vorgang abgeschlossen ist. Wir haben stattdessen angefangen, RSYNC zu verwenden.

Anstatt zu verwenden cp -Rv /source /destination

Verwenden Sie dies stattdessen rsync -av /source /destination

Jetzt werden alle Ihre Ordner und deren Inhalt in alphabetischer Reihenfolge verarbeitet, und Sie können leicht sehen, wie die Dateikopie fortschreitet.

Eine vollständige Beschreibung dieser Lösung finden Sie auf unserer Online-Backup-Website .

Moderatoren bitte beachten: Ich habe dies schon einmal gepostet, aber es wurde gelöscht, möglicherweise weil ich nicht genügend Details in die Antwort aufgenommen habe oder weil der Link. Vielleicht akzeptieren Sie diese detailliertere Antwort.

Michael Klimczak
quelle