Warum zählt der Befehl „du“ in 4-KB-Schritten?

Warum zählt der Befehl „du“ in 4-KB-Schritten?

Mögliches Duplikat:
Unterschied bei der Berechnung der Verzeichnisgröße

Ich verstehe nicht, wie der duBefehl unter Linux funktioniert. Ich wollte die Gesamtgröße von ein paar hundert kleinen Dateien berechnen und du -shbekam ungefähr 150 MB zurück. Ich habe nicht nachgefragt, bis mir auffiel, dass mein Dateimanager für denselben Datensatz nur etwa 50 MB anzeigte und ich verwirrt war.

Folgendes habe ich dann versucht:

fkochem@WK-6:~/temp$ cat test 
a
fkochem@WK-6:~/temp$ du -sh test 
4.0K    test

Das muss also ein Fehler sein? Ich habe mir du -sh *meine Originaldaten angesehen und Folgendes festgestellt:

4.0K    NCO-0.9.9.9.json
4.0K    NCO-0.99.9.json
4.0K    NCO-0.9.9.json
8.0K    NCO-0.99.json
8.0K    NCO-0.9.json

Warum duscheint in 4-KB-Schritten zu zählen? Was übersehe ich hier?

Antwort1

du ist die Festplattennutzung und zählt die der Datei zugewiesene Festplattenmenge. Die minimale „Blockgröße“ (d. h. der minimale Block, der einer Datei zugewiesen wird) beträgt normalerweise 4 KB. Das Dateisystem zählt also in 4-Kilobyte-Blöcken, nicht in du.

Es würde in 1-Kilobyte-Blöcken gezählt, wenn Sie ein Laufwerk folgendermaßen formatieren würden:

mke2fs -b 1024 /dev/XXX

verwandte Informationen