Qual é a diferença entre stat -c% B e stat -c% o? [duplicado]

1

Para fins acadêmicos estou tentando demonstrar a fragmentação interna de um arquivo. Pelo que entendi, a fragmentação interna pode ser mostrada como uma diferença entre o tamanho do arquivo e o tamanho de todos os blocos que estão contatando o arquivo. Descobrir o número de bloqueios foi bastante fácil. Meu problema é encontrar o tamanho dos blocos. Este é o número retornado por stat -c% o? (4096) ou stat -c% B (512).

Qual é a diferença entre esses dois? Eu tenho tentado encontrar respostas online, mas estou ficando cada vez mais confuso. Outros comandos como blockdev --getbsz / dev / sda2 mostram o meu sistema de arquivos em blockize como 4096. No entanto, depois de fazer caculations parece que 512 é mais adequado para ser o asnwer im procurando (tamanho do arquivo que eu estava testando é 44933 e número de blocos é 88. Multiplicá-lo por 4096 nos deixa com 360448, que é mais que 8 vezes o tamanho do arquivo).

    
por Linuxuser1212 21.04.2018 / 16:53

1 resposta

1

A partir do manual para stat(1) pode-se encontrar (isso é do sabor Centos7 de stat(1) ; outras fontes podem variar)

   %b     number of blocks allocated (see %B)
   %B     the size in bytes of each block reported by %b

   %o     optimal I/O transfer size hint

que indica que o primeiro é sobre blocos alocados no sistema de arquivos, enquanto o segundo é o valor relacionado a E / S no arquivo. Substantivo (blocos alocados) versus verbo (transferência dos ditos blocos) mais ou menos.

    
por 21.04.2018 / 17:11