ncdu: Analisador Interativo de Uso de Disco

ncdu: Analisador Interativo de Uso de Disco

O que você vai conseguir fazer

  • Abrir o `ncdu` e chegar aos maiores diretórios usando só as setas
  • Explicar as ordenações `s`, `n` e `C` e o fluxo de deleção com `d`
  • Escolher entre `-r` (somente leitura) e `-x` (apenas o mesmo sistema de arquivos)

Pré-requisitos (leia estes primeiro)

O Que Você Vai Aprender

  • Como usar ncdu para navegar grandes diretórios interativamente
  • Como encontrar arquivos grandes e deletá-los com segurança no local
  • Como trocar a repetição de du por uma investigação somente por teclas
  • Como escanear o disco de um servidor remoto via ssh

Público-alvo: Iniciantes em Linux. Quem está cansada de caçar espaço com du.

As palavras deste artigo

  • Interativo: é o estilo em que você segue por uma tela só, apertando teclas, em vez de redigitar comandos.
  • DiretórioUm local que organiza arquivos. É a mesma ideia da "pasta" do Windows ou macOS.: é a mesma coisa que o Windows e o macOS chamam de pasta.
  • Escanear: é visitar os arquivos alvo um a um para medi-los. Também se diz "percorrer".
  • Sistema de arquivos: é a estrutura que divide o disco para uso. Leia como "uma unidade como / ou /home, cujo espaço é contado separadamente".
  • Montagem: é ligar um disco a um diretório para poder usá-lo.
  • Saída padrão / entrada padrão: é onde um comando escreve o resultado e a abertura pela qual um comando recebe dados. A Seção 7 usa as duas.

O ncdu também serve só para inspecionar. Abra com -r e a função de deleção fica desativada por completo. Comece sempre a praticar com -r.

Note que o ncdu não faz parte do terminalUm programa interativo que interpreta os comandos digitados e os executa. virtual deste site. Teste em uma máquina Linux real ou no WSL. É justamente por isso que você deve começar com -r.

Introdução: O Incidente do "du Spam" da Lina

Lina: Linny-senpai, o disco encheu e estou caçando diretórios grandes com du.
Lina: Mas é executar du, fazer cd numa pasta mais funda, executar du de novo, cd de novo. Está demorando uma eternidade.
Veterano Linny: Esse é o clássico "du spam". Todo mundo passa por isso uma vez.
Veterano Linny: Existe uma ferramenta dedicada chamada ncdu que faz tudo isso com apenas as setas do teclado.
Lina: Só setas? Sem cd, sem du?
Veterano Linny: Isso. O ncdu deixa você navegar pela tela como um gerenciador de arquivos. Você entra nos maiores diretórios e pode até deletá-los ali mesmo.

A Resposta Curta

  • ncdu = NCurses Disk Usage. Uma ferramenta que mostra resultados do du em uma tela interativa
  • Mova com setas, delete no local com d, ordene por tamanho com s
  • Basta instalar com sudo apt install ncdu e executar ncdu /

1. O Que É o ncdu?

Conclusão: ncdu mostra resultados do du em uma visualização interativa em tela cheia, para que você possa entrar nos maiores caminhos com as setas.

Lina: O que ncdu significa?
Veterano Linny: Significa NCurses Disk Usage. NCurses é uma biblioteca para montar telas cheias no terminal. Biblioteca é um conjunto de programas reaproveitáveis como peças.
Veterano Linny: O ncdu usa essa biblioteca para exibir resultados no estilo du na tela.
Lina: Então é como um du turbinado?
Veterano Linny: É um bom modelo mental. O du apenas despeja números.
Veterano Linny: O ncdu ordena do maior primeiro. Você aperta Enter para entrar e a seta esquerda para voltar. Assim você chega ao vilão do espaço sem se perder.

ncdu vs du (em resumo)

  • du -> executar o comando uma vez e obter uma lista de números. Depois você mesma faz cd e executa de novo
  • ncdu -> escanear uma vez, depois apenas navegar pela tela para investigar

2. Instalar e Executar

Conclusão: ncdu frequentemente não vem instalado por padrão. Instale via apt / dnf, depois execute com ncdu CAMINHO.

Lina: Quero experimentar agora. Como instalo?
Veterano Linny: O pacote se chama ncdu em todas as distribuições. Vamos começar pela instalação.

Instalar

# Ubuntu / familia Debian
$ sudo apt install ncdu

# RHEL / familia Fedora
$ sudo dnf install ncdu

# CentOS mais antigo, etc.
$ sudo yum install ncdu

Executar

# Escanear o diretorio atual
$ ncdu

# Escanear um caminho especifico
$ ncdu /var

# Escanear toda a raiz (sudo recomendado)
$ sudo ncdu /
Lina: Executei ncdu / e apareceu "Scanning...". Fiquei esperando.
Veterano Linny: Isso é esperado. Ao abrir, o ncdu escaneia uma vez tudo o que está sob o caminhoUma sequência de texto que descreve a localização de um arquivo ou diretório. informado.
Veterano Linny: Assim como o du, um alvo grande demora um pouco. Quando o escaneamento termina, ele muda para a lista.

Use sudo para Escaneamentos em Todo o Sistema

Em / existem diretórios que um usuário comum não pode ler. Sem sudo, essas partes falham com "Permission denied" e ficam de fora da conta. Os totais então saem menores que a realidade.

Para investigar o sistema, sudo ncdu / é o ponto de partida.

Conclusão: Setas cima/baixo selecionam um item, Enter (ou seta direita) entra em um diretório, seta esquerda volta, e q sai.

Veterano Linny: Quando o escaneamento termina, você vê uma tela como esta. O ponto-chave é que os itens vêm do maior primeiro.
--- /var ------------------------------------------------------
    1.2 GiB [##########] /log
  512.0 MiB [####      ] /cache
   24.0 MiB [          ] /lib
    4.0 KiB [          ] /games

Como Ler

  • O número à esquerda: o uso daquele diretório ou arquivo
  • [#### ]: uma barra que mostra a proporção dentro do diretório pai
  • A / antes de um nome: a marca de um diretório
  • O --- /var --- no topo: onde você está agora

Teclas Principais

Teclas de Movimentação (aprenda apenas estas primeiro)

Tecla Ação
cima / baixo Selecionar um item (mover cima/baixo)
Enter ou -> Entrar no diretório selecionado
<- Voltar para cima ao diretório pai
r Reescanear o local atual
q Sair do ncdu
? Mostrar ajuda (lista de teclas)

A tecla r dentro da tela e a opção -r de execução são coisas diferentes. A tecla r reescaneia. A opção -r desativa a deleção.

Lina: Então eu movo o cursor sobre a lista e aperto Enter para entrar. É mesmo como um gerenciador de arquivos.
Veterano Linny: É sim. Sem cd e sem du, apenas setas para mergulhar no maior diretório. É isso que torna o ncdu agradável.

4. Ordenação e Alternância de Exibição

Conclusão: s ordena por tamanho, n por nome, C por contagem de itens, e g alterna a exibição de porcentagem/gráfico.

Lina: Posso mudar a ordem de classificação?
Veterano Linny: Pode. O padrão é do maior primeiro. Você troca conforme o que está procurando.

Teclas de Ordenação e Exibição

Tecla Ação
s Ordenar por tamanho (padrão)
n Ordenar por nome
C Ordenar por contagem de itens (C maiúsculo)
g Alternar exibição de porcentagem / barra gráfica
a Alternar tamanho aparente vs. uso real no disco

Quando Usar a (tamanho aparente)

Por padrão o ncdu mostra o tamanho realmente ocupado no disco. Aperte a para mudar para o tamanho aparente do arquivo.

Os dois divergem em arquivos esparsos e quando há muitos arquivos pequenos. Conhecer a diferença evita confusão.

5. Deletando no Local

Conclusão: Selecione um item e pressione d. Um promptUm símbolo (como $ ou #) exibido quando o shell está esperando sua entrada. de confirmação aparece, eliminando o ida e volta de encontrar com du e remover com rm.

Lina: Encontrei o diretório grande. Preciso sair do ncdu e executar rm para deletar?
Veterano Linny: Não precisa. Dentro do ncdu, selecione o item que quer remover e aperte d.
Veterano Linny: Ele pede confirmação antes de deletar. Assim, todo o ida e volta de "encontrar com du, remover com rm" desaparece.

Passos para Deletar

  1. Selecione o arquivo ou diretório com cima / baixo
  2. Pressione d
  3. Aparece uma tela de confirmação. As opções são yes, no e don't ask me again
  4. Mova entre elas com esquerda / direita e confirme com Enter. Aperte q para abortar

Checklist Pré-Deleção

  • O arquivo é mesmo desnecessário (um log, um cache ou um temporário)?
  • Algum serviço em execução está usando ele?
  • Para logs grandes, esvaziar o arquivo no local às vezes é mais seguro do que deletar (truncate -s 0 arquivo)

Uma observação sobre o segundo item. Deletar um arquivo que um serviço mantém aberto não devolve o espaço. Sobre esse problema de arquivo aberto, veja Entendendo du vs df.

6. Opções que Importam na Prática

Conclusão: -x permanece no mesmo sistema de arquivos, -r e somente leitura, e -o / -f exportam e reutilizam um escaneamento.

Veterano Linny: Conhecer algumas opções de execução torna sua investigação mais precisa e segura.

Opções Comuns de Execução

Opção Significado
-x Contar somente no mesmo sistema de arquivos (não cruzar montagens)
-r Executar em modo somente leitura (desabilita deleção d)
-o FILE Exportar o resultado do escaneamento para um arquivo
-f FILE Importar um resultado exportado e exibi-lo
--exclude PATTERN Excluir caminhos correspondentes da contagem
Lina: -x não é a mesma opção que apareceu com o du?
Veterano Linny: Boa memória. É igual ao du -x.
Veterano Linny: Quando /home é uma partição separada, ele impede a dupla contagem cruzando a fronteira. Isso ajuda quando você quer comparar com o df.

6-1. Lina se enrola: o d quase removeu a linha errada

Lina: Eu estava olhando /var e queria limpar um cache grande. Apertei d e o nome no pedido de confirmação não era o que eu esperava. Levei um susto.
--- /var ------------------------------------------------------
    1.2 GiB [##########] /log
  512.0 MiB [####      ] /cache
   24.0 MiB [          ] /lib
Lina: Eu queria deletar /cache. O aviso dizia /log. Meu cursor estava uma linha acima.
Veterano Linny: Boa que você percebeu. No ncdu, o d age sobre a linha que está selecionada. Onde o cursor está decide tudo.
Lina: A lista vem do maior primeiro, então as linhas de cima guardam mais dados. Quase deletar uma delas assusta.
Veterano Linny: Por isso comece com -r. A tecla d não faz nada, o que é ideal para praticar.
Lina: Faz sentido. Vou ler o nome do aviso em voz alta antes de apertar Enter.
# Praticar em um estado onde a delecao nao pode acontecer
$ ncdu -r ~

Use -r Quando a Segurança Vem Primeiro

Para evitar um d acidental, execute com sudo ncdu -r /. Com -r a função de deleção fica desabilitada.

Isso deixa a ferramenta somente para investigação, que é o que você quer ao apenas olhar um servidor de produção.

7. Escaneando o Disco de um Servidor Remoto

Conclusão: Abra o resultado de um escaneamento remoto no seu ncdu local para investigar sem operar de forma interativa no servidor (o lado remoto ainda precisa do ncdu).

Lina: Quero verificar o disco de um servidor, mas trabalhar na tela desse servidor é incômodo.
Veterano Linny: Boa observação. O ncdu pode exportar e importar resultados de escaneamento.
Veterano Linny: Combinado com ssh, isso deixa você investigar pela sua própria tela.

Padrão A: Escanear Remotamente, Visualizar Localmente

# Executar apenas o escaneamento estilo du remotamente e canalizar o resultado para seu ncdu local
$ ssh user@server ncdu -o- / | ncdu -f-

Como Ler

  • ncdu -o-: escreve o resultado do escaneamento na saída padrão (- significa stdout)
  • ncdu -f-: lê o resultado da entrada padrão e exibe
  • O | entre eles: canaliza a saída remota para o seu ncdu local

Há uma ressalva. Executar -o ainda exige o ncdu no lado remoto. Se ele não estiver instalado lá, instale primeiro na máquina remota.

Padrão B: Salvar o Resultado e Levar para Casa

Em vez de transmitir direto, você salva o resultado em um arquivo. Um resultado salvo pode ser revisto depois.

# No servidor, salvar o resultado (gzip mantem pequeno)
$ ncdu -o- / | gzip > scan.gz

# Transferir e carregar localmente
$ scp user@server:scan.gz .
$ zcat scan.gz | ncdu -f-
Lina: Então dá para salvar o escaneamento em um arquivo. Se eu salvar de tempos em tempos, consigo rastrear quando o uso cresceu.
Veterano Linny: Esse instinto é bom. Guarde os arquivos exportados em ordem de data. Eles viram uma trilha pronta para investigar o crescimento de capacidade.

8. Mini Exercícios: Experimente na Sua Máquina

Conclusão: Três exercícios -- encontre seu maior diretório home, alterne modos de ordenação e execute em somente leitura -- para fixar os controles.

Lina: O conteúdo entrou. Quero testar na mão.
Veterano Linny: Boa, preparei três desafios. Comece na sua máquina, não em produção. Com -r ligado, nenhuma deleção acontece.

Desafio 1: Encontre o maior diretório logo abaixo do seu home.

Ver Dica 1 (Direcionamento)

Abra a ferramenta informando o local que você quer inspecionar. A lista já vem do maior primeiro por padrão.

Então a linha do topo já responde à pergunta.

Ver Dica 2 (Nome do comando)

Use ncdu. O seu home pode ser escrito como ~. Acrescente -r por segurança.

Enter entra, a seta esquerda volta e q sai.

Ver Resposta
$ ncdu -r ~
--- /home/user -------------------------------------------------
    2.5 GiB [##########] /Videos
  512.0 MiB [##        ] /Downloads
   64.0 MiB [          ] /Documents

A linha do topo é o maior diretório. Neste exemplo é /Videos.

Aperte Enter para entrar e continuar seguindo os maiores conteúdos. A seta esquerda volta um nível.

Desafio 2: Alterne a lista entre ordem por tamanho e ordem por nome.

Ver Dica 1 (Direcionamento)

Uma tecla só já troca a ordem. Você não precisa redigitar o comando.

Cada tecla é a primeira letra de uma palavra em inglês.

Ver Dica 2 (Nome do comando)

A ordem por tamanho é s (size). A ordem por nome é n (name). Alterne entre elas na lista.

Ver Resposta

Na lista, alterne entre s e n. A ordem muda na hora.

Aperte a mesma tecla de novo para inverter entre crescente e decrescente.

Desafio 3: Abra a ferramenta em um estado onde a tecla de deleção não funciona e comprove isso.

Ver Dica 1 (Direcionamento)

Uma opção de execução desativa a função de deleção por completo. A ideia e abrir em modo somente leitura.

A primeira letra de "read-only" é a pista.

Ver Dica 2 (Nome do comando)

Use ncdu -r. Aponte para /tmp. Depois de abrir, aperte d e veja o que acontece.

Ver Resposta
$ ncdu -r /tmp

Abrir com -r desativa a tecla d. Nenhum pedido de confirmação aparece.

No lugar dele, o rodapé da tela mostra File deletion disabled in read-only mode. Essa mensagem é a prova de que o -r está em vigor.

Pratique assim até se sentir à vontade.

9. Armadilhas Comuns

Conclusão: Cuidado com sudo ausente diminuindo os números, um d acidental deletando a coisa errada, e apontar para / em vez do seu home.

Três Erros Comuns

  1. Escanear / sem sudo -> diretórios ilegíveis ficam de fora e os totais saem menores que a realidade
  2. Ver algo grande e apertar d na hora -> não adianta quando um serviço está usando o arquivo. Confirme o que é primeiro
  3. Operar em produção sem -r -> um d acidental deleta algo. Se está apenas olhando, sempre use -r

Hábitos Seguros

  • Para escanear o sistema, use sudo ncdu -x / (conta somente o mesmo sistema de arquivos)
  • Em servidores de produção, abra com -r (somente leitura) por padrão
  • Confirme nome, tamanho e data antes de deletar. Na dúvida, não delete

10. Revisão

Lina: Vou resumir. O ncdu escaneia uma vez e, depois disso, as setas fazem toda a navegação.
Veterano Linny: Isso. Enter entra e a seta esquerda volta. Essas duas bastam.
Lina: E o d age sobre a linha selecionada. Quase removi /log sem querer.
Veterano Linny: Boa memória. Abra com -r até se sentir à vontade. Só isso já evita quase todos os acidentes.

Resumo em 3 Linhas

  1. O ncdu mostra o resultado do du em uma tela interativa, e as setas fazem toda a navegação
  2. s ordena por tamanho e n ordena por nome. O d deleta a linha que está selecionada
  3. Use -r (somente leitura) para praticar e inspecionar. Use sudo e -x para escanear o sistema

Próximas Leituras