Ich bin verwirrt mit der Ausgabe des Befehls 'du' unter Linux

21

Ich erstelle eine Datei mit dem Namen file.o und möchte die Größe der Datei file.o überprüfen.

du -h file.o ====> 4.0K

du -b file.o ====> 1120

demnach du -b file.olerne ich file.o mit einer größe von 1120 bytes kennen. Aber warum werden du -h file.o4,0 KB ausgegeben (bedeutet 4 * 1024 Byte)?

Jason
quelle

Antworten:

33

Die Datei ist kleiner, benötigt jedoch einen ganzen 4.0-KB-Block auf der Festplatte (Sie können nur eine Datei in einem Block haben). Wenn seine Bytegröße (zum Beispiel) 5678 Bytes wäre, würde er zwei 4,0-KB-Blöcke belegen, dh 8,0 KB.

du -b druckt Größen in Bytes und überschreibt die Standardblockgröße.

Eumiro
quelle
10

Um die Antwort von eumiro zu ergänzen, kann die Blockgröße für jedes Dateisystem / jede Partition unterschiedlich sein.

Mit tune2fs -l /dev/<disk> | grep '^Block size'oder können Sie die Blockgröße eines Dateisystems ermittelnstat -c "%o" <file on the disk> .

Mikel
quelle