%S fundamental block size (for block counts)
informa o tamanho de cada bloco no sistema de arquivos. Na maioria dos sistemas de arquivos, essa é a menor quantidade de espaço que qualquer arquivo pode ocupar. Cada arquivo usa um múltiplo disso.
Por exemplo,
$ echo > a # create a file containing a single byte
$ du -h a # see how much disk space it's using
4.0K a
$ stat -f -c '%S' . # see what stat thinks the block size is
4096
$ tune2fs -l /dev/mydrive | grep '^Block size'
4096
Eu não tenho 100% de certeza de que sempre funciona assim. Por exemplo, espero que ele também decida imprimir 512
ou 1024
, mesmo que o tamanho do bloco subjacente seja diferente, desde stat -c %b FILE
* stat -f -c %S FILE
= du --block-size=1 FILE
. A implementação exata dependeria do sistema de arquivos.
%s block size (for faster transfers)
sugere quantos bytes você deve ler por vez se estiver copiando arquivos grandes, por exemplo, o que deve ser usado como o parâmetro bs
(blocksize) ao usar dd
. Mas nos sistemas que eu verifiquei, sempre imprime 4096
, mesmo quando valores maiores podem ser mais rápidos. Veja Existe uma maneira de determinar o valor ideal para o parâmetro bs para dd? para mais discussão sobre isso.
Tecnicamente, essas informações (e todas as informações de stat -f
) são provenientes da chamada do sistema statvfs
.
%s
corresponde ao campo f_bsize
e %S
é f_frsize
.
Assim, você poderia olhar para os significados precisos deles começando com a página man do statvfs
unsigned long f_bsize; /* Filesystem block size */
unsigned long f_frsize; /* Fragment size */