O que significa o “tamanho em blocos de 512 bytes”?

0

Dado um arquivo com um único h . Se eu executar find com o -ls primitivo, recebo a seguinte saída:

$ cat some_file
h
$ find . -ls
2750606        0 drwxr-xr-x    4 mbigras          FOO\Domain Users      136 May 18 12:35 .
3067730       16 -rw-r--r--    1 mbigras          FOO\Domain Users     6148 May 18 12:33 ./.DS_Store
3067836        8 -rw-r--r--    1 mbigras          FOO\Domain Users        2 May 18 12:35 ./some_file

De man find e pesquisando por -ls , podemos encontrar a saída das seguintes informações sobre os arquivos:

its inode number, size in 512-byte blocks, file per- missions, number of hard links, owner, group, size in bytes, last modification time, and pathname.

Algumas coisas que estou pensando:

  • Se some_file tiver apenas h , o que é um byte, então por que o "tamanho em bytes" 2? Eu esperaria que fosse 1.
  • Se o segundo número for o "tamanho em blocos de 512 bytes", então por que ele é maior que o "tamanho em bytes"? Eu esperaria que fosse 0 ou pelo menos menor.
por mbigras 18.05.2017 / 21:44

2 respostas

3

some_file contém h seguido por uma nova linha, totalizando dois bytes. Tente algo como

hexdump -C some_file

para visualizar o conteúdo do byte do arquivo por byte.

Qualquer arquivo entre 1 e 512 bytes ocupará um bloco de 512 bytes, se esse for o tamanho mínimo de alocação no disco, assim como um arquivo de 513 bytes receberá dois blocos de 512 bytes. A contagem de blocos não é arredondada para o número inteiro mais próximo.

    
por 18.05.2017 / 21:49
0

veja qual é a razão por trás, porque usamos 512 bytes; digamos que um arquivo de tamanho 513 bytes, do que o que acontece é para armazenar este arquivo, precisamos de 2 blocos de tamanho 512 bytes no disco rígido. A fim de salvar o 513th byte, temos que alocar um bloco de disco rígido completo que contém 512 bytes à direita.Então, há um desperdício de 511 bytes por causa da fragmentação interna, portanto, para reduzir essa fragmentação interna, é sempre melhor que você Mantenha o tamanho do bloco o menor possível e, por experimentação, descobrimos que 512 bytes é o tamanho ideal, se você diminuí-lo, então você pode ter que acessar um monte de blocos para acessar um arquivo e levará tempo . Então, para otimizar as coisas, eles descobriram que, experimentalmente, 512 bytes é o melhor tamanho para aumentar a eficiência e diminuir o desperdício de memória.

    
por 08.12.2017 / 07:32