Não há uma maneira confiável de fazer isso, já que os pacotes podem baixar arquivos durante a instalação que o dpkg
não estaria ciente. O pacote seria limpo se desinstalado, de modo que, de certo modo, é gerenciado, mas dpkg
não os rastreia. E enquanto dpkg
conhece os tamanhos do pacote, os arquivos podem, é claro, ter mudado após a instalação.
Pacotes podem ter arquivos em /opt
(Google Chrome, por exemplo), /var/
(muitos exemplos para listar, basta fazer dpkg -S /var
), /usr/local
(certificados SSL devem ser instalados usando um diretório em /usr/local
, por exemplo.
De forma confiável, os únicos diretórios que você pode excluir são /home
, /cdrom
, /mnt
, /media
(e /lost+found
, mas isso é um artefato do sistema de arquivos, não padrão).
Para mim, o comando que você tentou e o seguinte estão em acordo razoável e diferem significativamente com o uso real do sistema de arquivos (a lista de arquivos de um pacote está em /var/lib/dpkg/info/<package>.list
):
$ (cat /var/lib/dpkg/info/*.list | sudo xargs -d '\n' stat -c '%s' | awk '{c+=$1}END{print int(c/1024)}') 2>/dev/null
5572166
Compare:
$ dpkg-query -W --showformat='${Installed-Size}\n' | awk '{c+=$1}END{print c}'
5462957
$ df /
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 18446076 6744528 10741500 39% /
Pessoalmente, basta verificar os tamanhos de /var/cache
e /home
.