Como entender o que está ocupando espaço em disco?

86

Estou procurando uma alternativa Linux para WinDirStat . Gostaria de saber o que está ocupando espaço nos meus discos rígidos.

É preferível um programa que funcione no console e não exija uma interface do usuário.

ripper234
fonte
ncdué a minha resposta preferida, mas vejo que a primeira resposta diz que você está tendo problemas que não estão na sua pergunta.
SDSolar 9/09/2017

Respostas:

74

Com base nos seus problemas na instalação do ncdu, minha recomendação seria usar due usar sortjuntos.

Por exemplo:

  • du /home | sort -rn (pesquisará todos os arquivos / diretórios em / home e os classificará do maior para o menor.
  • du -h /home | sort -rh(o mesmo, mas mostrará em MB / KB / etc) - Observe que isso requer coreutils 7.5 ou mais recente ( sort --versionpara verificar)

Você pode substituir / home por qualquer diretório de sua escolha.

NJ
fonte
Isso é excelente, obrigado pela ajuda. Meu coreutils é 5,97 - é por isso que a ordem de classificação de du -h não está correta?
ripper234
Sim, você teria que se contentar du /home | sort -rncom o coreutils 5.97 ou usar alguma 'mágica' com perl, etc, conforme demonstrado no ServerFault ( serverfault.com/q/62411/60012 )
NJ
2
OTOH, se houver um grande subdiretório, seu inchaço mostrará várias vezes (para esse dir e cada dir pai) no topo dos resultados e o IMHO que distrai o inchaço verdadeiro. Usando "ncdu" sugerido abaixo pode ajudar com isso, eu vou tentar. =)
lapo 13/01
2
Acho que a opção -size para "encontrar" é útil também, pois permite encontrar todos os arquivos em um determinado local. Pelo menos para o GNU find, você pode fazer algo como: "find. -Size + 100M" para encontrar arquivos maiores que 100M abaixo do diretório atual.
Gabe.
89

Se você deseja uma ferramenta de linha de comando, prefiro ncdu , uma versão ncurses de du. Ele verifica o disco (ou uma pasta específica) e mostra os usos do espaço de nível superior; você pode selecionar um determinado diretório para obter o resumo correspondente para esse diretório e voltar sem precisar reanalisar:

Captura de tela do ncdu


Se você concorda com um programa de GUI, o Filelight é a coisa mais próxima do WinDirStat que encontrei; mostra uma visão gráfica do consumo de espaço:

Captura de tela do Filelight

Assim ncdu, o Filelight permite selecionar um determinado diretório para obter a divisão desse diretório

Michael Mrozek
fonte
4
você não acha que o QDirStat está mais próximo do WinDirStat?
Janus Troelsen
39

Você deve estar ciente de que o WinDirStat é realmente uma porta do KDirStat , que é um programa Linux / KDE. Portanto, se você está procurando uma alternativa do Linux ao WinDirStat, certamente deve dar uma olhada no KDirStat . Já está empacotado na maioria das distros, basta instalá-lo.

Outra alternativa é o FileLight, já citado por Michael Mrozek, e o plug-in Konqueror fsview(você pode executá-lo de maneira independente na linha de comando).

Juliano
fonte
16
Uau, eu nunca percebi isso (acho que "Win" no nome deveria ter sido uma doação). Um colega de trabalho me perguntou uma vez se havia uma versão Linux do WinSCP ; Eu morri um pouco por dentro
Michael Mrozek
3
@ comentário anterior. ai. Apenas ai.
David Oneill
2
Note-se que ele será chamado K4DirStat para o Ubuntu se instalar através do centro de software
y3sh
ousudo apt-get install k4dirstat
y3sh 29/11
34

Outro programa da GUI é: baobab

texto alternativo

sudobash
fonte
De fato, se eu estiver no Ubuntu, não vou me preocupar em procurar outra alternativa. baobapé apenas o suficiente.
phunehehe
Ele também mostra o número de arquivos, que às vezes precisa ser verificado, bem como espaço em disco
Golimar
9

Use QDirStat (anteriormente KDirStat).

Ele inclui um script perl que gera um arquivo de cache no servidor / console sem a necessidade de uma interface do usuário estar em execução / instalada; transfira-o para a sua máquina desktop e visualize-o no cliente da GUI.

Consulte https://unix.stackexchange.com/a/256516/186308 para obter detalhes.

icyerasor
fonte
é ridiculamente rápido. ferramenta muito boa #
phil294
7

Eu prefiro a seguinte linha de comando:

$  du -s -m -x * | sort -n

Dividindo, dumostra o uso do disco; -sdiz imprimir o total para cada argumento (cada item no diretório atual), -mdiz mostrar o tamanho em megabytes. Isso facilita o trabalho da classificação; A classificação realmente não entende a -hsaída. O -xignora outros sistemas de arquivos; isso é útil ao tentar encontrar porcos espaciais /vare /var/spool/fooé um sistema de arquivos diferente.

P Joslin
fonte
A resposta principal já não é usada du?
Muru
Sim, mas du / home em meus sistemas retorna dezenas de milhares de arquivos; Eu raramente me importo com o que os (digamos) 100 maiores desses arquivos são; Normalmente, quero saber quais subdiretórios estão ocupando mais espaço.
P Joslin #
Em vez de -s, especifiquei --max-depth = 2, pois queria ir um diretório abaixo do diretório raiz, mas sua resposta me apontou nessa direção. Obrigado!
John Eisbrener
6

Há também este script python interessante em /www.vrplumber.com/programming/runsnakerun/

bzr branch lp:~mcfletch/squaremap/trunk squaremap

Não é o mais rico em recursos, mas é executado a partir de um único script python, por isso é extremamente portátil.

texto alternativo

Falmarri
fonte
6

Se você olhou para a tela about no windirstat, ele mostrou que é baseado no kdirstat.

http://kdirstat.sourceforge.net/

DF1eCH
fonte
Gosto da resposta - mas você poderia adicionar algum contexto ou detalhes?
Volker Siegel
4

Você também pode experimentar o GD Map , outra ferramenta da GUI baseada em mapas de árvores.

Bruno
fonte
3

O xdiskusage é muito flexível, leve, com dependências muito enxutas, fácil de compilar ..

Ele mostra uma árvore da esquerda para a direita que você pode navegar com as teclas do mouse ou de seta, aumentar o zoom (clicar ou entrar), ocultar algumas partes para uma melhor visualização, alterar a ordem de classificação, o número de cores etc. com as teclas ou o menu de contexto.

É tão leve que você pode usá-lo em um link SSH remoto com bom desempenho. Nesse caso, recomendo a -qopção de linha de comando para desativar a barra de progresso que aparece enquanto os arquivos são encaminhados.

Opcionalmente, duvocê também pode executar- se antecipadamente.

Uma situação é um sistema de arquivos remoto que está cheio ou quase cheio. Na execução do sistema du -ak | gzip >log_of_disk_usage.txt.gz, busque a saída e execute gzip -dc log_of_disk_usage.txt.gz | xdiskusage -aqlocalmente.
Ou mesmo ssh myremotesystem "cd /filesystem_near_full/ ; du -ak | gzip" > log_of_disk_usage.txt.gzpara armazenar o resultado localmente sem escrever nada remotamente.

xdiskusage não oferece modificar o sistema de arquivos (como mover para a lixeira, etc), mas você pode copiar um caminho para a área de transferência e colá-lo em um gerenciador de arquivos, terminal etc.

Captura de tela do xdiskusage

Stéphane Gourichon
fonte
2

Recentemente, usei a ferramenta de linha de comando (CLI, não a TUI): http://zevv.nl/play/code/philesight/

Produz um arquivo PNG que você pode ver em outro lugar. Ele também possui um script CGI.

Provavelmente você não está limitado ao modo de texto na estação de trabalho local, portanto, deve ser apropriado.

OCTAGRAM
fonte
1

Também para ver os arquivos em um diretório específico, classificados por tamanho, depois de encontrar o diretório usando du use:

ls -lrSh
Wodin
fonte
1

O Duc ( https://duc.zevv.nl/ ) funcionará na linha de comando.

Pode ser instalado e usado assim no Debian 9:

# apt install duc
# duc index /
# duc graph /

Com isso, você obterá um arquivo nomeado duc.pngno diretório atual. Agora, você pode copiar esse arquivo para outro computador com interface gráfica e ele terá a seguinte aparência: duc.png

NOTA: Duc é o substituto da ferramenta mencionada pelo @OCTAGRAM em sua resposta.

Jaime Hablutzel
fonte