Ich muss die Größe des Verzeichnisses im Terminal zum Signieren abrufen. Ich verwende folgenden Befehl:
du -s /path/to/dir
Ich multipliziere das Ergebnis mit der traditionellen UNIX-Blockgröße (512 Bytes) und erhalte die tatsächliche Verzeichnisgröße in Bytes. Allerdings zeigt das „Get Info“-Dialogfenster des Finders die Größe etwas kleiner als die mit dem Terminal-Befehl berechnete. Und es scheint, dass es auf jedem Ordner/Bündel reproduzierbar ist. Was übersehe ich?
Akzeptierte Antwort:
Normalerweise du
zeigt Informationen zur Festplattennutzung an (woher der Name kommt). Denken Sie daran
disk usage != sum of file sizes
Weil jede Datei eine Anzahl von Blöcken belegt auf dem Dateisystem (siehe man mkfs.ext2
zum Beispiel). Das bedeutet, dass die Plattenbelegung einer Datei nur in sehr seltenen Fällen ihrer tatsächlichen Größe entspricht – dafür muss die Größe genau ein Vielfaches der Blockgröße sein.
Stellen Sie sich Dateisystemblöcke als Kästen vor, die Teile von Dateien enthalten – jeder kann einen Teil von nur einer Datei enthalten.
Für die GNU-Version von du
, überprüfen Sie die --apparent-size
Option.
Eine noch interessantere Situation kann eintreten, wenn es im Dateisystem einige wenige Dateien gibt!