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

20

Eu criei um arquivo chamado file.o, eu quero 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 o arquivo.o é 1120 bytes de tamanho. Mas por que du -h file.o produz 4.0K (significa 4 * 1024 bytes)?

    
por Jason 20.01.2011 / 10:04

2 respostas

33

O arquivo é menor, mas ocupa um bloco inteiro de 4.0K 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.0K, ou seja, 8.0K.

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

    
por 20.01.2011 / 10:06
10

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

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

    
por 20.01.2011 / 13:15

Tags