Dominando o Comando du no Linux

Visão Geral

Durante a rotina de administração de servidores Linux, deparar-se com partições cheias ou alertas de armazenamento crítico é um desafio corriqueiro. Identificar com rapidez quais diretórios ou arquivos estão drenando a capacidade do sistema faz toda a diferença para restabelecer a estabilidade operacional. Em vez de se perder na leitura maçante das páginas do manual (man), este laboratório prático apresenta desde os conceitos elementares do utilitário du (Disk Usage) até truques indispensáveis para o dia a dia na linha de comando.

1. Configurando o Ambiente de Testes e Execução Inicial do du

Para reproduzir os cenários deste tutorial sem comprometer o sistema, preparamos uma árvore de diretórios temporária com arquivos de tamanhos variados executando mkdir -p /tmp/du_demo/logs /tmp/du_demo/backup && truncate -s 10M /tmp/du_demo/backup/data.bin && truncate -s 5M /tmp/du_demo/logs/app.log.

Criando estrutura de pastas e arquivos fictícios de teste

A utilidade principal do du reside em calcular o consumo real do sistema de arquivos alocado para uma pasta e suas respectivas ramificações, exibindo a contagem padrão baseada em blocos de 1024 bytes.
Ao ser invocado sem parâmetros adicionais, o utilitário varre a árvore recursivamente e imprime o volume bruto ocupado ao lado de cada caminho encontrado.
⚙️ [Parâmetros Fundamentais]

-h : Converte as medições para grandezas legíveis por humanos (K, M, G).
-a : Inclui arquivos avulsos no relatório, além das pastas.
-s : Agrega o total ocupado em uma única linha descritiva, omitindo subpastas.
-d : Delimita o nível de profundidade na hierarquia de subdiretórios inspecionada.
-c : Acrescenta um somatório geral (total) ao final da listagem.
-b : Informa o tamanho aparente do conteúdo em bytes, em vez da ocupação física dos blocos alocados no disco.

Executando du básico no diretório de demonstração

A adição da flag -h (--human-readable) simplifica imensamente a interpretação dos resultados, convertendo os blocos crus em notações familiares como kilobytes (K), megabytes (M) e gigabytes (G).
Essa conversão poupa cálculos mentais e proporciona uma visão imediata da dimensão de cada diretório.

Visualizando espaço com a flag -h em formato legível

2. Ajustando a Profundidade da Busca e Calculando Totais (-d, -s, -c)

Para simular hierarquias de arquivos mais profundas e avaliar o controle de navegação estrutural, crie subníveis adicionais com o comando mkdir -p /tmp/du_demo/nested/level1/level2 && truncate -s 2M /tmp/du_demo/nested/level1/level2/dummy.bin.

Gerando subpastas aninhadas para teste de profundidade

O parâmetro -d 1 (--max-depth=1) restringe o escopo da checagem estritamente aos diretórios situados no primeiro nível abaixo da raiz indicada.
Esse filtro é excelente para evitar saídas quilométricas no terminal, permitindo avaliar instantaneamente quais ramificações principais consomem mais recursos antes de investigar subpastas específicas.

Limitando a checagem à profundidade de nível 1 com du -h -d 1

Quando o objetivo é obter apenas o veredito final sem poluição visual, o modificador -s (--summarize) entra em ação condensando todo o volume acumulado em um resumo de registro único.
Combinando-o com -h, obtém-se uma conferência rápida e precisa da pegada total deixada por uma aplicação ou pasta de projeto.

Obtendo o resumo consolidado com du -sh

Ao adicionar a opção -c (--total), o utilitário preserva a decomposição dos itens intermediários e insere um registro extra ao final demonstrando o somatório acumulado (total).
Trata-se de uma alternativa prática para auditar múltiplos diretórios simultaneamente sem perder o panorama do conjunto.

Listando uso por pasta e computando a linha de total geral

3. Investigando Arquivos Individuais e Filtrando Itens Irrelevantes (-a, –exclude)

Para demonstrar como descartar elementos indesejados durante a auditoria de armazenamento, gere arquivos temporários complementares usando touch /tmp/du_demo/temp1.tmp /tmp/du_demo/temp2.tmp.

Criando arquivos temporários com extensão tmp

Por padrão, o du agrupa medições no nível das pastas; contudo, a inclusão do modificador -a (--all) instrui o utilitário a inspecionar e relacionar cada arquivo individualmente.
Ao associar essa opção ao parâmetro -h no diretório /tmp/du_demo/logs, cada registro de log é detalhado com sua respectiva volumetria de armazenamento.

Listagem detalhada de todos os arquivos individuais com du -ah

A diretiva --exclude confere flexibilidade ao processo, possibilitando omitir arquivos que sigam determinados padrões de nomenclatura ou extensões conhecidas.
Ao aplicar --exclude='*.tmp', descartam-se resíduos de curta duração da contagem, concentrando a apuração exclusivamente nos dados persistentes que realmente importam.

Filtrando extensões temporárias com a opção exclude

4. Aplicação Prática: Ranqueamento por Espaço e Caça a Arquivos Gigantes

Para compor um cenário realista de diagnóstico onde seja necessário isolar os maiores consumidores de disco, adicione cargas pesadas com truncate -s 50M /tmp/du_demo/backup/big.tar && truncate -s 20M /tmp/du_demo/logs/access.log.

Alocando arquivos volumosos para simulação de triagem

Direcionando o fluxo de du -h -d 1 /tmp/du_demo através de um pipe (|) para o comando sort -hr, o sistema reorganiza as pastas em ordem decrescente de tamanho.
Essa composição revela imediatamente os diretórios de topo no ranking de consumo, eliminando qualquer esforço manual de busca.

Ordenando pastas em ordem decrescente de tamanho com pipeline sort

Levando a análise a um nível ainda mais cirúrgico, podemos mapear toda a árvore via du -ah /tmp/du_demo, ordenar as entradas decrescentemente com sort -hr e filtrar apenas o topo da lista via head -n 5.
Essa combinação entrega de imediato os 5 maiores consumidores de armazenamento da infraestrutura, agilizando ações de mitigação antes que o disco atinja a lotação completa.

Filtrando os 5 maiores arquivos e diretórios da partição

Concluído o estudo prático, limpe o ambiente eliminando toda a estrutura criada no laboratório com o comando rm -rf /tmp/du_demo.

Removendo arquivos e diretórios temporários do laboratório

Exploramos aqui os mecanismos essenciais do du e como encadear suas opções para resolver gargalos de armazenamento com rapidez e precisão no Linux.
Incorpore esses pipelines aos seus scripts e rotinas operacionais para manter a infraestrutura sempre saudável e com capacidade sob controle.