O "slackspace" a que você está se referindo é freqüentemente chamado de espaço esparso em um arquivo. Você pode usar o ls
& Comandos du
para detectar quanto espaço esparso um arquivo está consumindo.
trecho de Arquivo esparso da Wikipedia
Detection
The
-s
option of thels
command shows the occupied space in blocks, and-k
the apparent size in blocks too:$ ls -lks sparse-file
-h
can be used to print both in human readable format.Alternatively, the du command prints the occupied space, while
ls
prints the apparent size. The option--block-size=1
prints the occupied space in bytes instead of blocks, so that it can be compared to thels
output:$ du --block-size=1 sparse-file $ ls -l sparse-file
Exemplo
Primeiro, crie um arquivo esparso:
$ truncate -s 5M sparsy
Agora confira:
$ ls -lks sparsy
0 -rw-rw-r--. 1 saml saml 5242880 Apr 4 09:18 sparsy
$ ls -l sparsy
-rw-rw-r--. 1 saml saml 5242880 Apr 4 09:18 sparsy
NOTA: A primeira coluna na saída de ls -lks sparsy
está exibindo um 0
. Isso significa que o arquivo sparsy
é 100% esparso, não contém blocos de dados reais, apenas dados esparsos.
O comando du
mostra a mesma coisa:
$ du --block-size=1 sparsy
0 sparsy
Com um arquivo que não é escasso, veremos isso:
$ seq 1000 > non-sparsy
Agora, quando verificamos usando ls
:
$ ls -lks non-sparsy
4 -rw-rw-r--. 1 saml saml 3893 Apr 4 09:27 non-sparsy
Nós vemos que está consumindo 4 blocos de espaço. Usar du
mostra a mesma coisa:
$ du --block-size=1 non-sparsy
4096 non-sparsy