>_ josetilabs.com
← blog

04 nov 2026 · linux, disco · 4 min

duf e dust: onde foi o espaço do disco

du responde “quanto pesa este diretório” e df responde “quanto sobra no disco”. São duas perguntas diferentes e as ferramentas novas não substituem as duas: duf é um df mais legível e dust é um du que desenha a árvore. No mesmo diretório de teste com 28 MiB de arquivos, du -sh * e dust . concordaram em 28 MiB, enquanto duf . e df -h . mostraram o sistema de arquivos de 95.8 GiB. A diferença de tempo apareceu no /usr: 3.2 s para o du contra 0.7 s para o dust, em 136122 entradas e 3.8 GiB.

O que cada um responde

Confundir os dois é o erro mais comum. duf . não diz quanto o diretório pesa; diz quanto o disco inteiro tem. dust não diz quanto sobra no disco; diz onde foi o espaço.

O artefato: comparar os quatro

Um script que roda os quatro no mesmo alvo e deixa a saída lado a lado. Funciona mesmo se duf ou dust não estiverem instalados: avisa e segue.

bash
#!/usr/bin/env bash
set -euo pipefail

ALVO="${1:-.}"

echo "===== df (sistema de arquivos) ====="
df -h "$ALVO"

echo
echo "===== du (peso do alvo) ====="
du -sh "$ALVO" 2>/dev/null
echo "--- maiores entradas ---"
du -sh "$ALVO"/* 2>/dev/null | sort -h | tail -n 20

if command -v duf >/dev/null 2>&1; then
    echo
    echo "===== duf (df legível, com cores e JSON) ====="
    duf "$ALVO"
    echo "--- saida em JSON ---"
    duf --json "$ALVO" | head -n 5
else
    echo
    echo "duf não instalado. Debian/Ubuntu: apt install duf. Binário: github.com/muesli/duf/releases"
fi

if command -v dust >/dev/null 2>&1; then
    echo
    echo "===== dust (du em árvore, com barras) ====="
    dust -n 20 "$ALVO"
    echo "--- só arquivos, sem diretórios ---"
    dust -F -n 10 "$ALVO"
else
    echo
    echo "dust não instalado. Cargo: cargo install du-dust. Binário: github.com/bootandy/dust/releases"
fi

Instalação

Opções que importam

duf:

dust:

Como verificar

Rode o script num diretório pequeno e confira a concordância.

bash
./compara-disco.sh /tmp

Saída esperada: a linha do du -sh e o total do dust batem (mesmo número, mesmo diretório). O df e o duf mostram o disco, que é maior. Se du e dust discordarem, um dos dois está contando links ou sistemas de arquivos diferentes: use du -x e dust -x.

Se der errado

Medição

No /usr com 136122 entradas e 3.8 GiB, du -sh levou 3.2 s e dust -n 5 levou 0.7 s. O duf levou 0.005 s, mas só porque mostra o sistema de arquivos, não percorre o diretório. A diferença de tempo do dust vem de paralelizar o walk e de não ordenar tudo antes de imprimir.

O README do duf documenta todas as opções em github.com/muesli/duf. O dust documenta o arquivo de configuração em github.com/bootandy/dust.

Terminal mostrando df, du, duf e dust no mesmo diretório de teste com 28 MiB de arquivos
du e dust concordam em 28 MiB; duf e df mostram o disco de 95.8 GiB.

Gráfico de barras comparando o tempo de du e dust para percorrer /usr com 136122 entradas e 3.8 GiB

FAQ

duf substitui du? Não. duf é df com cores e JSON. Para peso de diretório, use du ou dust.

dust conta links múltiplas vezes? Não. Dust não conta hard links múltiplas vezes por padrão; use -s para contar o tamanho aparente.

Qual usar em script? du -sb para bytes exatos, ou duf --json / dust -j se quiser estrutura. Evite parsear a saída colorida.

ncdu ainda vale? Sim, quando você quer navegar interativamente e apagar arquivos na hora. dust e du são para olhar e decidir.

Fontes

github.com/muesli/duf (duf 0.9.1, licença MIT, consultado em 04 nov 2026). github.com/bootandy/dust (dust 1.2.7, licença Apache 2.0, consultado em 04 nov 2026). Links internos: /blog/disco-cheio-como-achar.html, /blog/medir-disco-sem-derrubar.html, /blog/ver-o-que-come-a-ram.html, /blog/rsync-copiar-e-retomar.html.

Leia também

// Por e-mail

Os textos publicados aqui também vão por e-mail. O envio ainda não começou: quem deixar o endereço agora entra na primeira lista.

Guardo só o seu e-mail, a data e o registro desta autorização. Sem cookies, sem rastreador e nada compartilhado com terceiros. Detalhes na política de privacidade.