Estou confuso com a saída do comando 'du' no Linux

21

Crio um arquivo chamado file.o, desejo verificar o tamanho do arquivo file.o

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

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

de acordo com du -b file.o, eu conheço file.o é 1120bytes grande. Mas por que du -h file.ogera 4,0 K (significa 4 * 1024 bytes)?

Jason
fonte

Respostas:

33

O arquivo é menor, mas é necessário um bloco inteiro de 4,0 K no disco (você pode ter apenas um arquivo em um bloco). Se o tamanho do byte fosse (por exemplo) 5678 bytes, ele ocuparia dois blocos de 4,0 K, ou seja, 8,0 K.

du -b imprime tamanhos em bytes, substituindo o tamanho padrão do bloco.

eumiro
fonte
10

Para adicionar à resposta do eumiro, o tamanho do bloco pode ser diferente para cada sistema de arquivos / partição.

Você pode encontrar o tamanho do bloco de um sistema de arquivos usando tune2fs -l /dev/<disk> | grep '^Block size'ou stat -c "%o" <file on the disk>.

Mikel
fonte