Para uso como programa de terminal baseado em tela (curses / ncurses etc) :
Veja ncdu - exemplo de saída:
ncdu 1.10 ~ Use the arrow keys to navigate, press ? for help
--- /usr/share/icons -----------------------------------------------------------
189.2MiB [##########] /oxygen
169.3MiB [######## ] /hicolor
130.2MiB [###### ] /HighContrast
123.9MiB [###### ] /gnome
74.0MiB [### ] /nuvola
57.9MiB [### ] /Faience
46.5MiB [## ] /Breathe
46.1MiB [## ] /Faenza-Blue-Dark2
43.2MiB [## ] /AwOken
40.1MiB [## ] /elementary-xfce
31.9MiB [# ] /AwOkenDark
26.4MiB [# ] /elementary
Total disk usage: 1.7GiB Apparent size: 1.4GiB Items: 308833
Para uso no terminal no modo de texto linha por linha :
Para mostrar tamanhos ordenados de subdiretórios e arquivos no diretório atual:
(Para não mostrar arquivos, veja abaixo)
Execute isso no diretório que contém os diretórios que você deseja medir,
$ HOME no seu exemplo:
du -sch .* * | sort -hr | less
Ou apenas o mesmo comando na forma de opção longa mais detalhada:
du --summarize --total --human-readable .* * | sort --human-numeric-sort --reverse | less
Isso mostra o
-
du- uso de disco dentro do diretório atual, -
-s(--summarize) - mostrando um valor total por item, -
-c(--total) - e um valor total global como a soma de todos os valores por item, -
-h(--human-readable) - mostrando tamanhos como 6.8G, 4.0K, 5M, etc, em vez de contagens de bytes, -
.*- listando arquivos e diretórios nomeados com ponto como primeiro caractere, -
*- e todos os outros arquivos e diretórios, -
| sort -hr- ordena o resultado, manipulando os tamanhos dos arquivos legíveis por humanos, em ordem inversa, -
| less- e mostre a lista resultante em um pager, o maior no topo.
Nota: dependendo do shell usado, e suas opções, usando .* em um diretório no qual nenhum nome de arquivo começando com . exista pode causar um erro. Nesse caso, o .* é redundante e pode ser deixado de fora (e é isso que o erro estava tentando dizer a você)
Exemplos de linhas de saída, na ordem de classificação original:
% bl0ck_qu0te%Para uma resposta exata da pergunta, os arquivos precisam ser excluídos da lista. Isso torna a lista muito mais legível normalmente, então vale a pena fazer; Só não quando digitando manualmente o comando em um shell, como é um pouco longo. Então, para usar em um script, etc:
Use find para listar apenas diretórios (não use a sintaxe comum find . -foo para o argumento de diretório para evitar um prefixo ./ nos nomes de arquivos na lista de resultados):
find .* * -maxdepth 0 -type d -print0 | du --files0-from=- -sch | sort -hr | less
Para uso com a área de trabalho gráfica (não o terminal solicitado) :
(Não foi solicitado, mas adicionando uma pequena dica sobre boas ferramentas de GUI para a tarefa de completenes.)
Veja gdmap e filelight (ou baobab ). Ambos fornecem diagramas muito interessantes e, para obter a melhor visualização intuitiva, vale a pena tentar combinar gdmap com um dos outros dois.