Por que o uso do arquivo diminui drasticamente quando o diretório é copiado do Ubuntu convidado para o disco usb?

0

Eu tenho um VMware instalado no meu Windows 10, e o convidado é o Ubuntu. Eu copiei um diretório de 2.2G do guest do Ubuntu para meu flash disk USB com este comando:

rsync ubuntudirectory usbdirectory -r

Mas acho que o espaço no arquivo diminui em 1,0G.

du ubuntudirectory -hc

2,2 g

du usbdirectory -hc

1.2G

O que aconteceu? Existem apenas arquivos de texto puros no diretório.

E eu pensei que seria o comprimento possivelmente longo de alguns nomes de arquivos que fazem a cópia (rsync) omitir alguns arquivos, mas não era o fato.

ls usbdirectory | wc -l

559562

ls ubuntudirectory | wc -l

560213

O mais provável é que os arquivos sejam quase do mesmo tamanho, portanto, os arquivos que não foram transferidos parecem dificilmente causar uma grande redução no espaço em disco.

Para ter certeza de que não são os arquivos ignorados que efetuam o encolhimento (como suspeitava @Anwar), tentei reproduzi-lo usando mais um diretório que é muito menor. A diminuição é 10M de 17M para 6,8M. Os dois diretórios são da mesma quantidade de arquivos (a quantia exata é 8948) . Depois de rsynced de volta para o disco convidado (do usb), o diretório recuperou de 6,8M para 17M.

du /home/myname/somewhere/text -hc

17 milhões

rsync /home/myname/somewhere/text /media/myname/UUI/text  -r

du /media/myname/UUI/text -hc

6,8 M

rsync /media/myname/UUI/text /home/myname/text -r

du /home/myname/text -hc

17 milhões

    
por lerner 23.08.2016 / 09:34

1 resposta

1

Os arquivos são escritos em blocos que consistem em uma infinidade de 512 bytes, por exemplo, 1kB, 4 kB. O tamanho do bloco difere entre os sistemas de arquivos e os tamanhos de disco. Quanto maior o disco, maior o bloco. Um arquivo contendo 1,5 kB de dados ocupará 1,5 kB de espaço em disco em um sistema de arquivos com tamanho de bloco de 512 kB, 2 kB em um sistema de arquivos com blocos de 1 kB e 4 kB em um sistema de arquivos com blocos de 4 kB.

O comando

du exibe uma estimativa do espaço em disco de todos os blocos ocupados pelos arquivos.

Se (especialmente se) você tiver um grande número de arquivos pequenos, o espaço reservado em um bloco no final de cada arquivo, mas não usado pelos dados, será maior em discos / sistemas de arquivos com um tamanho de bloco grande (maior discos).

Você pode verificar o tamanho do bloco para um determinado dispositivo com:

sudo blockdev --getbsz /dev/sda1 
    
por techraf 23.08.2016 / 10:02