Warum zeigt du -sl unterschiedliche Größen für Quelle und Ergebnis einer cp -rl?

1940
Laurent Giroud

Ich habe cp -rleinen Ordner kopiert. Beim Messen der Größe der Quelle und des Ergebnisses der Kopie werden du -slleicht unterschiedliche Größen angezeigt, auch wenn diffder Inhalt identisch ist:

$ cp -rl folderA/ folderB/ $ du -sl folderA folderB 98561224 folderA 98590512 folderB $ diff --brief -ra folderA/ folderB/ $ 

Beide Ordner befinden sich auf derselben Festplatte, zwischen der Kopie und der Maßnahme wurden keine Änderungen vorgenommen. Ich habe in der Dokumentation nichts gefunden duund cpwas den Unterschied erklären könnte.

5

1 Antwort auf die Frage

2
Nicholi

Ich habe es gerade selbst ausprobiert, und ich fand die Diskrepanz in der Größe von den Verzeichnisdateien. Da es sich nicht um einen Hardlink handelt, handelt es sich um neue Dateien, die erstellt werden, möglicherweise nicht mit genau denselben Metadaten.

Um dies zu veranschaulichen, führen Sie die folgenden Befehle aus:

ls -alR folderA/ | grep -v '^d' | awk ' END ' ls -alR folderB/ | grep -v '^d' | awk ' END ' 

Diese Größen sollten identisch sein (Verzeichnisdateien nicht enthalten). Sie können die Auflistungen mit den Verzeichnisgrößen drucken und anhand der Ergebnisse feststellen, welche Verzeichnisse genau unterschiedlich sind.

In der Tat sind die Ergebnisse identisch. Laurent Giroud vor 13 Jahren 0
Ich fand auch, dass es die Verzeichnisdateien sind, die sich unterscheiden. Aber warum ist das so? tekumara vor 12 Jahren 0
Unter Linux sind Verzeichnisse tatsächlich Dateien, nur von besonderer Art. Ich bin mir nicht wirklich sicher, warum es einen Unterschied gibt, aber es hängt wahrscheinlich mit Metadaten zusammen, die vom Dateisystem gespeichert werden. Ihre ursprünglichen Verzeichnisse können größer sein, weil sie mehr Dateien enthielten, aber entfernt wurden (?). Diese entfernten Dateien fügten den Metadaten der dir-Datei einige "Auffüllen" hinzu, die nicht mehr verwendet werden. Wenn das Verzeichnis kopiert wird, müssen diese nun nicht mehr benötigten Daten auch kopiert werden, sodass die Kopien kleiner sind. PS das ist eine absolute Vermutung. Wenn Sie es herausfinden, antworten Sie bitte. Nicholi vor 12 Jahren 0