Estou tentando criar um arquivo vazio com base no espaço restante no disco rígido. O problema é que quando eu crio um arquivo com 1 GB de tamanho, o comando df mostra que o espaço restante é apenas 12 kb menor do que era antes da criação do arquivo.
someone@here:/tmp/delete# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 36827144 5031592 29924788 15% /
tmpfs 508508 0 508508 0% /lib/init/rw
varrun 508508 156 508352 1% /var/run
varlock 508508 4 508504 1% /var/lock
udev 508508 140 508368 1% /dev
tmpfs 508508 1108 507400 1% /dev/shm
someone@here:/tmp/delete# dd if=/dev/zero of=tempFile bs=1000 count=1 seek=1000000
1+0 records in
1+0 records out
1000 bytes (1.0 kB) copied, 0.000438915 s, 2.3 MB/s
someone@here:/tmp/delete# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 36827144 5031604 29924776 15% /
tmpfs 508508 0 508508 0% /lib/init/rw
varrun 508508 156 508352 1% /var/run
varlock 508508 4 508504 1% /var/lock
udev 508508 140 508368 1% /dev
tmpfs 508508 1108 507400 1% /dev/shm
Alguém sabe por que o comando df não leva em conta 1 GB completo? Obrigado.
Responder1
Você o criou em um sistema de arquivos que suportaarquivos esparsosentão, na verdade, ocupa apenas 1000 bytes, exatamente como dd
diz a saída de. Omita seek
e use um count
.
Responder2
Deinfo coreutils du
(ênfase minha):
'--apparent-size'
Imprime tamanhos aparentes, em vez do uso do disco. O tamanho aparente de um arquivo é o número de bytes relatado por 'wc -c' em arquivos regulares ou, mais geralmente, 'ls -l --block-size=1' ou 'stat --format=%s'. Por exemplo, um arquivo contendo a palavra `zoo' sem nova linha teria, é claro, um tamanho aparente de 3. Um arquivo tão pequeno pode exigir de 0 a 16 KiB ou mais de espaço em disco, dependendo do tipo e da configuração. do sistema de arquivos no qual o arquivo reside. No entanto, umescassoarquivo criado com este comando:dd bs=1 busca=2GiB if=/dev/null of=big
tem umtamanho aparente de 2 GiB, mas na maioria dos sistemas modernos, na verdadequase não usa espaço em disco.