07 nov 2026 · linux, disco, ferramentas · 4 min
ncdu: achar o que ocupa o disco sem comando complicado
Disco cheio e você não sabe onde. du -sh * lista pastas, mas não ordena e não deixa navegar. ncdu faz as duas coisas numa tela de texto: varre o diretório, ordena por tamanho e deixa você entrar nas pastas com as setas. Medição num diretório de teste com 30 MiB: projeto 22 MiB, logs 5 MiB, cache 3 MiB. O culpado aparece na primeira tela.
Instalar
Debian e Ubuntu: sudo apt install ncdu. Fedora: sudo dnf install ncdu. macOS: brew install ncdu. Arch: pacman -S ncdu. O autor também publica binários estáticos para x86_64 e ARM em dev.yorhel.nl/ncdu, úteis em servidores sem gerenciador de pacotes.
Varredura básica
ncdu /var/log varre só os logs. ncdu / varre a raiz, mas demora e pode entrar em montagens. Durante a varredura, uma linha mostra o item atual e o total parcial. Para não cruzar sistemas de arquivos, use -x: montagens remotas e /proc ficam de fora. Para ignorar um padrão, --exclude .git. Para ignorar pastas que trazem CACHEDIR.TAG, --exclude-caches.
Navegar e agir
Setas para mover, Enter para entrar numa pasta, < ou h para voltar ao pai. d apaga o item selecionado, pedindo confirmação. n ordena por nome, s por tamanho, C por número de itens. g alterna a barra de porcentagem. a alterna uso de disco e tamanho aparente. ? mostra todos os atalhos. q sai.
Para só olhar, rode com -r (read only): desliga apagar e shell. É o modo seguro para auditar um servidor de produção.
Exportar e importar
ncdu -o relatorio.json /dados varre e salva, sem abrir interface. ncdu -f relatorio.json abre depois, no mesmo ou em outro computador. Isso permite varrer num servidor remoto e navegar no notebook. O man page mostra a forma com pipe: ssh -C usuario@servidor ncdu -o- / | ncdu -f-. O -C do ssh comprime, útil em links lentos.
Para servidores grandes, o export cresce: cerca de 600 a 700 KiB para 10 mil arquivos, e escala de forma linear. Com milhões de arquivos, espere dezenas de megabytes.
O roteiro
#!/usr/bin/env bash
set -euo pipefail
# Se ncdu nao estiver instalado, imprime a instrucao e sai sem erro.
if ! command -v ncdu >/dev/null 2>&1; then
echo "ncdu nao encontrado."
echo "Debian/Ubuntu: sudo apt install ncdu"
echo "Fedora: sudo dnf install ncdu"
echo "macOS: brew install ncdu"
exit 0
fi
tmp="$(mktemp -d)"
trap 'rm -rf "$tmp"' EXIT
mkdir -p "$tmp/projeto/src" "$tmp/projeto/node_modules" "$tmp/logs" "$tmp/cache"
dd if=/dev/zero of="$tmp/projeto/node_modules/x.bin" bs=1M count=20 2>/dev/null
dd if=/dev/zero of="$tmp/projeto/src/app.js" bs=1M count=2 2>/dev/null
dd if=/dev/zero of="$tmp/logs/app.log" bs=1M count=5 2>/dev/null
dd if=/dev/zero of="$tmp/cache/thumb.db" bs=1M count=3 2>/dev/null
echo "=== varredura e exportacao ==="
ncdu -o "$tmp/relatorio.json" "$tmp" >/dev/null
echo "relatorio salvo em $tmp/relatorio.json"
echo "=== comandos do dia a dia ==="
echo "ncdu /var/log # varrer so logs"
echo "ncdu -x / # nao cruzar sistemas de arquivos"
echo "ncdu --exclude .git /projeto # ignorar padrao"
echo "ncdu -o relatorio.json /dados # exportar para navegar depois"
echo "ncdu -f relatorio.json # abrir relatorio"
echo "ncdu -r / # modo somente leitura"
Se der errado
- Varredura lenta ou travada em
ncdu /: use-xe--exclude-kernfspara não entrar em /proc, /sys e montagens remotas. - Mensagem “Standard input is not a TTY”: ncdu precisa de terminal. Use
-opara exportar e-fpara visualizar, ou rode dentro descript. - Números que não batem com
df: hard links contados uma vez por diretório, montagens cruzadas, arquivos deletados mas ainda abertos. - Apagou algo por engano: por padrão ncdu pede confirmação.
--no-confirm-deletedesliga essa proteção e não é recomendado. - Cores ilegíveis:
--color offou--color dark.
ncdu 1.x e 2.x
A versão 1.x é escrita em C e vem nos pacotes da maioria das distribuições. A versão 2.x é reescrita em Zig e traz varredura paralela com -t8 e export binário com -O. A medição deste post usou a 1.22, de 2025-03-05, licença MIT.
Comparativo
| Ferramenta | Interface | Exporta JSON | Apaga arquivos | Observação |
|---|---|---|---|---|
| du | texto | não | não | padrão, scriptável |
| ncdu | texto interativo | sim | sim | o mais conhecido |
| dust | texto | não | não | muito rápido |
| gdu | texto interativo | sim | sim | reescrito em Go |
| dua | texto | não | não | foco em velocidade |
| baobab | gráfica | não | sim | vem com GNOME |
FAQ
ncdu substitui du? Não. du é padrão e scriptável. ncdu é para investigar.
Funciona via SSH? Sim, é o caso de uso principal: servidor sem interface gráfica.
Como varrer sem contar outros sistemas de arquivos?
ncdu -x /.
Posso excluir node_modules automaticamente?
ncdu --exclude node_modules /projeto. O padrão casa por nome em qualquer nível.
A medição usou quantos arquivos? Oito itens no total, somando 30 MiB. O maior era node_modules/x.bin com 20 MiB.
Fontes
Site oficial em dev.yorhel.nl/ncdu, man page em manpages.debian.org. Veja também disco cheio, como achar, duf e dust e medir disco sem derrubar.