CLI AI

Qual pasta está comendo o disco? du, ordenado por tamanho

2026-05-22

du -h --max-depth=1 . | sort -rh mostra um nível da árvore, o maior primeiro. Depois você repete isso dentro da entrada maior até encontrar o culpado. Essa descida — não um comando genial — é a técnica.

1. Um nível, o maior primeiro

clai
$ clai mostra o tamanho das pastas aqui, um nível de profundidade, maior primeiro→ du -h --max-depth=1 . | sort -rh348K	.296K	./a52K	./c

sort -rh ordena corretamente tamanhos legíveis por humanos — ele sabe que 2G é maior que 900M, algo que um sort -r comum não sabe.

2. Vá aonde está o tamanho

clai
$ clai agora faça o mesmo dentro da maior pasta→ du -h --max-depth=1 ./a | sort -rh

Duas ou três iterações disso geralmente chegam à resposta. É mais rápido que uma varredura completa da árvore porque você nunca lê os ramos que não importam.

3. Não conte outros sistemas de arquivos

clai
$ clai tamanho total de / mas fique só neste sistema de arquivos→ du -shx /348G	/

-x impede que o du desça a outros pontos de montagem. Sem isso, uma varredura de / entra em /mnt, compartilhamentos de rede e bind mounts, e retorna um número que não tem nada a ver com o disco que você está tentando liberar.

4. Os maiores arquivos individuais

clai
$ clai encontre os 10 maiores arquivos em /var→ sudo find /var -xdev -type f -printf '%s\t%p\n' | sort -rn | head -10

Às vezes não é uma pasta, é um único log de 40 GB. -xdev é o equivalente do find ao du -x.

5. Explore de forma interativa

clai
$ clai navegue pelo uso de disco de forma interativa em /var→ ncdu -x /var

O ncdu varre uma vez e deixa você percorrer a árvore com as setas, apagando pelo caminho. Se você vai rodar du mais de duas vezes, instale-o em vez disso.

6. Rode onde ele tem permissão para ler tudo

clai
$ clai varra / por tamanho de pastas sem ruído de permissão→ sudo du -h --max-depth=1 -x / 2>/dev/null | sort -rh | head

Sem sudo, o du pula silenciosamente diretórios que não consegue acessar e subestima o resultado. Com ele, 2>/dev/null esconde o ruído dos arquivos que desaparecem no meio da varredura.

Pegadinhas

  • du mede blocos alocados, não o conteúdo dos arquivos. Um milhão de arquivos de 1 byte ocupa muito mais que um milhão de bytes. du --apparent-size mostra o outro número.
  • Se du e df divergem muito, pare. É outro problema — arquivos apagados mas ainda mantidos abertos, ou inodes esgotados. Veja o artigo linkado.
  • --max-depth é exclusivo do GNU. No macOS o equivalente é du -d 1, e sort -rh precisa de um BSD sort recente ou coreutils.

Perguntas relacionadas

Por que o du é tão lento? Ele faz stat em cada arquivo da árvore. Em sistemas de arquivos de rede ou com milhões de arquivos pequenos isso é realmente lento — restrinja o caminho ou use o ncdu, que pelo menos armazena em cache a varredura.

Qual a diferença entre du -s e du -h --max-depth=1? -s imprime um total para o caminho inteiro; --max-depth=1 imprime uma linha por filho. Use -s quando você já souber onde olhar.

Como encontro pastas acima de um certo tamanho? Passe por awk: du -m --max-depth=2 . | awk '$1 > 1000' lista tudo acima de 1 GB.

Veja também

Peça os tamanhos de pasta que você quer, e o CliAI escreve o du, o sort -rh e o -x. Instale em uma linha.