Obtenha o tamanho real e aparente de uma pasta

1

Estou usando o comando du para obter o tamanho da pasta. Como estou interessado no tamanho real, acabei com o seguinte comando:

du –sh --apparent-size <someFolder>/

Neste exemplo, isso retorna 4.6M . No entanto, sei que a pasta tem exatamente 4M e WinSCP confirma (4096KiB).

Então, qual comando eu teria que usar para obter "4M" como resultado (preferencialmente em um formato legível por humanos)?

Por favor, esteja ciente de que também preciso incluir todas as subpastas para que seja recursiva. Estrutura de pastas é algo assim:

_cache
+-- _fold1
+-- _fold2
|   +-- _fold2.1
|       +-- file2.1.1
|       +-- file2.1....
|       +-- file2.1.5000
|   +-- _fold2.2
|       +-- file2.2.1
|       +-- file2.2....
|       +-- file2.2.5000

Obrigado!

    
por newBee 10.02.2016 / 15:33

1 resposta

1

O comando du destina-se a mostrar o uso do disco. O uso de disco para um diretório inclui o tamanho que o diretório real leva.

Um diretório é um tipo especial de arquivo que contém os nomes e inodes de todos os arquivos ou outras entradas. Isso ocupa espaço em disco.

Por exemplo, criei três diretórios.

Um é dir1 , que contém um único arquivo de 40M. O diretório dir2 contém dez subdiretórios, cada um contendo um único tamanho de arquivo de 4M. O diretório dir3 contém dez mil arquivos vazios.

Executando du -s -B 1 dir1 dir2 dir3

41947136    dir1
41988096    dir2
258048  dir3

Para diretórios pequenos, um tamanho de diretório (pelo menos em um sistema de arquivos ext4 sem nenhuma configuração exótica) é de 4096 bytes. Para diretórios grandes (contendo muitos arquivos), o tamanho é maior (como ls -l diria a você). Resuma os tamanhos dos diretórios junto com os arquivos, e acredito que você acabará com a diferença que está testemunhando.

    
por 10.02.2016 / 17:11