
Beim Ausführen ls -ld /dir
der Ausgabe wird immer die Größe = 512 angezeigt, unabhängig davon, ob Dateien darin sind oder nicht.
aber wenn ich du -sh
die Ausgabe ausführe, wird mir die tatsächliche Größe des Verzeichnisses einschließlich seines Inhalts angezeigt.
Antwort1
Wenn Ihr Verzeichnis viele Dateien enthält, erhalten Sie tatsächlich eine größere Zahl: Wenn ich 10.000 leere Dateien in einem neuen Verzeichnis erstelle, steigt diese Zahl von 4.096 auf 262.144.
Die Startgröße hängt vom Dateisystem und der Blockgröße ab, die beim Erstellen des Dateisystems angegeben wurden. Sie ist ein Hinweis darauf, wie viele Metadaten das Verzeichnis enthält (für die darin enthaltenen Dateien und Verzeichnisse), nicht wie viele Daten die Dateien in einem Verzeichnis enthalten.
Zum Vergleich: Ein Verzeichnis mit 10000 leeren Dateien
ls -ld . --> 262144
du -sh . --> 260K
Ein Verzeichnis mit 10000 Dateien mit jeweils 100000 Bytes:
ls -ld . --> 262144
du -sh . --> 977M
Die Metadaten haben für beide Dateisätze die gleiche Größe (sie haben auch genau die gleichen Namen).