Se você puder usar uma GUI, tente Baobab . Esta é uma ferramenta gráfica para analisar o uso do espaço em disco.
Meu disco está ficando sem espaço:
$ df -h
Filesystem Size Used Avail Use% Mounted on
...
/dev/sda7 803G 715G 48G 95% /home
Gostaria de percorrer todo o diretório pessoal e descobrir os 10 principais diretórios ou arquivos que consomem espaço para decidir quem será removido.
du -sh *
pode ver o tamanho de todos os subdiretórios, mas só obtém a pasta atual. Eu posso precisar dividir em muitos subdiretórios, respectivamente e recursivamente, para descobrir quem são os culpados de que preciso.
Existe uma boa maneira de fazer isso?
Se você puder usar uma GUI, tente Baobab . Esta é uma ferramenta gráfica para analisar o uso do espaço em disco.
ncdu é uma opção de linha de comando que verifica os diretórios e lista o uso do disco do mais alto ao mais baixo. É a minha vez de ferramenta para isso.
Você ainda terá que mergulhar de forma recursiva dessa maneira, mas é uma maneira fácil de fazer isso.
Use este comando:
t=$(df|awk 'NR!=1{sum+=$2}END{print sum}');du / –exclude /proc –exclude /sys –max-depth=1|sed '$d'|sort -rn -k1 | awk -v t=$t 'OFMT="%d" {M=64; for (a=0;a<$1;a++){if (a>c){c=a}}br=a/c;b=M*br;for(x=0;x<b;x++) {printf "3[1;31m" "|" "3[0m"}print " "$2" "(a/t*100)"% total"}'
Ele mostrará o tipo de gráfico na linha de comando mostrando os diretórios que consomem a maior parte do espaço em porcentagem.
Se você quiser analisar apenas o /home
- você pode especificar isso no comando da seguinte forma:
t=$(df|awk 'NR!=1{sum+=$2}END{print sum}');du /home –exclude /proc –exclude /sys –max-depth=1|sed '$d'|sort -rn -k1 | awk -v t=$t 'OFMT="%d" {M=64; for (a=0;a<$1;a++){if (a>c){c=a}}br=a/c;b=M*br;for(x=0;x<b;x++) {printf "3[1;31m" "|" "3[0m"}print " "$2" "(a/t*100)"% total"}'
Será parecido com isso:
Extraídode aqui .
du | sort -rn | cabeça
+1 para o Baobab. na linha de comando, eu costumo usar apenas du -hcsx *
ou du -hcsx * | sort -h
(precisa de uma versão recente com falha de sort
) e depois verificar subdiretórios conforme eu prossigo.
Além disso, mc
tem uma característica interessante ao calcular os tamanhos dos subdiretórios pressionando Ctrl + Espaço na parte superior (pressione Ctrl + Espaço em cima de ..
para calcular o tamanho de todos os subdiretórios. Depois, você pode selecionar ordenar por tamanho no menu.
Tente isto:
du -a /dir | sort -nr | cut -f2 | xargs du -sh | head -n 10
find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}
A linha de comando acima faz o seguinte (em ordem):
Isso resultará em uma lista de tamanhos legíveis por humanos dos 10 arquivos maiores dentro da pasta e das subpastas atuais.
Tags linux shell ubuntu disk-space