Ich weiß, dass die Größe eines Verzeichnisses selbst etwas anderes ist als die Größe der darin enthaltenen Dateien.
Ich stelle mir ein Verzeichnis als eine Liste der Verzeichnisse und Dateien vor, daher sollte die Größe eines Verzeichnisses mit der Anzahl der darin enthaltenen Dateien / Verzeichnisse in Beziehung stehen, mit einem Minimum von 4096 Bytes aufgrund der Einschränkung der Blockgröße.
Aber in meinem System habe ich viele gut bestückte Verzeichnisse mit 4096 Bytes und einige Verzeichnisse, die wesentlich weniger gefüllt sind und etwa 10 Megabyte groß sind. Können Sie mir bitte erklären, warum dies passiert?
Antworten:
Das verwendete Dateisystem und die maximale Anzahl von Entitäten in diesem Verzeichnis zu einem bestimmten Zeitpunkt bestimmen die Größe. Sobald die für das Verzeichnis reservierte Standardgröße erschöpft ist, wird mehr Speicherplatz für das Verzeichnis zugewiesen. Wenn jedoch die Anzahl der Entitäten abnimmt, wird der zugewiesene Speicherplatz nicht automatisch freigegeben. Wenn ein Verzeichnis also zu einem bestimmten Zeitpunkt 10 Millionen Entitäten hat, bleibt es gleich groß, wenn 9.999.999 davon gelöscht würden. Dies führt zu interessanten Situationen wie in diesem Unix- und Linux-Beitrag .
Dies gilt nicht unbedingt für andere Dateisysteme. Die
ext{2,3,4}
Dateisysteme sind betroffen. NTFS ist in geringerem Maße.tmpfs
und btrfs nicht. ZFS ist eher konservativ, ich habe eine Ausgabe2
für den zweitenstat
Befehl erhalten.Verbunden:
quelle