Você pode ver os 10 maiores diretórios com:
du -cks *|sort -rn|head
Isso adicionará recursivamente os tamanhos de tudo em cada diretório - mas você teria que executá-lo manualmente em cada nível para obter uma análise do que está em cada
Estou procurando um script / programa que exiba os principais x maiores diretórios / arquivos e depois entre nessas pastas e exiba os x maiores diretórios / arquivos para uma profundidade configurável.
231MB bin
- 220MB ls
- 190MB dir
- 15MB def
- 3MB lpr
- 10MB asd
- 1MB link
Como posso fazer isso?
Você pode ver os 10 maiores diretórios com:
du -cks *|sort -rn|head
Isso adicionará recursivamente os tamanhos de tudo em cada diretório - mas você teria que executá-lo manualmente em cada nível para obter uma análise do que está em cada
É provável que seu sistema tenha um desses instalados ou esteja disponível por meio do gerenciador de pacotes:
Gráfica:
Baseado em texto:
Eles podem não funcionar exatamente como você especificou, mas devem fazer a maior parte do que você precisa.
Minha variação na resposta de Brent é:
# du -a | sort -rn | head
O que lhe dará os maiores diretórios ou arquivos na árvore.
Você pode fazer algo similar usando find:
# find -maxdepth 2 -type d -exec du -sh {} \;
Mas isso não será classificado por tamanho e será incrivelmente lento e ineficiente. Melhor escrever um script que analise du -a.
(Queria adicionar isso como um comentário à resposta de Brent, mas não vejo um link para fazer isso) Recentemente, tive um problema semelhante, e se você precisar apenas verificar uma partição em questão, adicionar um -x à resposta de Brent é bastante útil, especialmente se alguns diretórios tiverem sua própria partição.
Então seria:
du -ckx / | sort -rn | head
Something to remember about human-readable output is that a reverse numeric sort won't work as expected without fixing it up. A quicker option is to use the -k switch to output the directory size information in kilobytes.
Eu teria uma breve olhada na manpage de ordenação - em alguns sistemas você pode usar sort -h
para classificar a saída legível. Eu usei isso no CentOS 6.2 com o tipo 8.4. Caso contrário, você pode redirecionar a saída de du -h
para um arquivo e classificar com algo como:
for i in K M G; do egrep "^[0-9,\.]+${i}" somefile | sort -n; done
Isso faz com que você tenha o tamanho classificado e legível por humanos dos 10 maiores arquivos / pastas na árvore de diretórios inteira:
du -ah | sort -hr | head
Exemplo
1019M .
431M ./prod
195M ./prod/mainprogram
180M ./utils
162M ./prod/subprogram1
157M ./.git
156M ./py
155M ./.git/objects
148M ./.git/objects/pack
128M ./prod/mainprogram/hdf
Eu não sei de uma ferramenta de linha de comando que faz isso (diferente do que as outras respostas sugeriram), mas se você é capaz de executar programas GUI nesta máquina, tente KDirStat . Ele mostra o uso do disco de todos os arquivos e diretórios sob uma raiz específica, classificados por tamanho (por padrão).