Jestem mylony z wynikiem polecenia „du” w Linuksie

21

Tworzę plik o nazwie file.o, chcę sprawdzić rozmiar pliku file.o.

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

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

zgodnie z du -b file.o, poznałem plik. o jest 1120 bajtów. Ale dlaczego du -h file.ogeneruje 4,0 K (oznacza 4 * 1024 bajty)?

Jason
źródło

Odpowiedzi:

33

Plik jest mniejszy, ale zajmuje jeden cały blok 4,0 KB na dysku (możesz mieć tylko jeden plik w jednym bloku). Jeśli jego bajt miałby (na przykład) 5678 bajtów, zajmowałby dwa bloki 4,0 K, tj. 8,0 K.

du -b drukuje rozmiary w bajtach, zastępując domyślny rozmiar bloku.

eumiro
źródło
10

Aby dodać do odpowiedzi eumiro, rozmiar bloku może być inny dla każdego systemu plików / partycji.

Rozmiar bloku systemu plików można znaleźć za pomocą tune2fs -l /dev/<disk> | grep '^Block size'lub stat -c "%o" <file on the disk>.

Mikel
źródło