Você pode usar o ncdu
em si!
Isso mostra os tamanhos descompactados dos arquivos.
No caso que você diz que se importa, ou seja, muitos arquivos incompressíveis, deve refletir o que você precisa muito bem:
Para tornar os tamanhos de arquivo acessíveis para ncdu
, eles precisam estar em um sistema de arquivos . Então, precisamos montar o arquivo como um sistema de arquivos.
Usamos uma implementação do sistema de arquivos espaciais user-space , archivemount
:
Instale o sistema de arquivos de fusíveis:
sudo apt-get install archivemount
mkdir
um diretório, mount
do arquivo para ele, cd
, e execute ncdu
:
$ mkdir bash-4.3-mount
$ archivemount bash-4.3.tar.gz bash-4.3-mount
$ cd bash-4.3-mount
$ ncdu
Agora você pode usar ncdu
normalmente:
ncdu 1.10 ~ Use the arrow keys to navigate, press ? for help
--- /tmp/archivedutest/bash-4.3-mount/bash-4.3/lib ----------------
/..
1.2MiB [##########] /readline
343.0KiB [## ] /sh
316.5KiB [## ] /intl
104.5KiB [ ] /glob
97.0KiB [ ] /malloc
32.0KiB [ ] /termcap
22.0KiB [ ] /tilde
Total disk usage: 2.1MiB Apparent size: 2.0MiB Items: 251
Agora, o que realmente interessa é o tamanho compactado dos arquivos, e não descompactado: você deseja ver quais arquivos ocupam mais espaço no arquivo real.
Estritamente falando, isso não é possível porque o arquivo é compactado como um todo. Um arquivo individual não tem "tamanho compactado".
Assim, o tamanho compactado de arquivos individuais só pode ser aproximado.
Uma aproximação seria o tamanho de arquivos compactados individualmente.
Outra seria uma fração do tamanho comprimido, assumindo que todos os arquivos são compactados pela mesma proporção. Existem certamente outras maneiras.
O primeiro parece estar ok. Para implementá-lo, não há como descompactar e recompactar os arquivos individuais, então não vejo razão para não apenas fazer isso, descompactar o sistema de arquivos e usar o ncdu nos arquivos.