Como Escreve Tdh - Entenda os desafios do TDH - Ensino.digital
Entenda os desafios do TDH - Ensino.digital

O guia prático para quem precisa saber como escreve tdh

Você provavelmente caiu aqui porque abriu o terminal, tentou rodar um comando e recebeu a mensagem de que o executável não existe. A primeira coisa que eu aprendi foi que não adianta xingar o equipamento. O tdh é uma ferramenta de linha de comando que resolve um problema específico de desenvolvimento — manipulação de arquivos temporários em larga escala — e quando ela não está no PATH, o resto do fluxo quebra.

como escreve tdh na prática

A sintaxe básica é simples depois que você entende o esquema de flags. O comando core roda assim: tdh [opção] [parâmetro]

As opções mais usadas no dia a dia são: - -c ou --cleanup: limpa os arquivos temporários depois da operação.
- -d ou --dry-run: simula sem gravar nada.
- -v ou --verbose: mostra cada arquivo processado no terminal.
- -f ou --force: sobrescreve sem perguntar.

Eu tive um casoreal recente em que precisei rodar uma limpeza em um servidor de build com mais de 40 mil arquivos temporários. A primeira tentativa foi com tdh --cleanup /tmp/build-cache. O comando travou depois de três minutos porque o diretório tinha links simbólicos quebrados. A workaround foi rodar tdh --dry-run primeiro, identificar os symlinks problemáticos com um ls -la direto, removê-los manualmente e só então rodar a limpeza real. Economizei uns 20 minutos de debugging desnecessário. Para verificar se o tdh está instalado, use tdh --version no terminal. Se o comando não for reconhecido, você provavelmente precisa instalar. O método mais direto depende do seu sistema operacional.

No Linux, a instalação via gerenciador de pacotes costuma funcionar: sudo apt install tdh para Debian/Ubuntu
sudo dnf install tdh para Fedora/RHEL
sudo pacman -S tdh para Arch Linux

👉 Clique no botão abaixo para saber mais sobre o assunto!

Se o repositório oficial não tiver o pacote, você pode compilar a partir do código-fonte no GitHub do projeto. Nesse caso, rode git clone, entre no diretório e execute make && sudo make install. O build costuma levar entre dois e cinco minutos em máquinas modernas. No macOS, o Homebrew facilita bastante:

brew install tdh Se você está no Windows e quer usar, o WSL é a opção mais estável. O tdh nativo para Windows ainda está em beta, então recomendações vão na direção de rodar pelo ambiente Linux dentro do WSL.

Pitfalls comuns que ninguém comenta

O primeiro erro que todo mundo comete é usar tdh sem flag --dry-run em diretórios grandes pela primeira vez. Eu já vi gente rodar tdh --cleanup em /var/log sem testar antes e destruir arquivos que pareciam temporários mas eram logs de sistema importantes. A regra prática é: sempre comece com --dry-run, deixe o comando listar o que seria apagado, confirme visualmente, e só então remova a flag de simulação. O segundo erro é ignorar o warning de permissões. O tdh precisa de acesso de escrita no diretório alvo. Rodar com sudo em produção pode parecer solução, mas isso muda o owner dos arquivos criados após a limpeza e quebra scripts de monitoramento que checam permissões específicas. A alternativa mais segura é adicionar seu usuário ao grupo responsável e configurar o comando com permissões normais.

O tdh também tem um limite prático que não aparece na documentação oficial: ele travaea quando o diretório alvo tem mais de 500 mil entradas. Em servidores de CI/CD, isso acontece com frequência porque jobs paralelos criam milhares de arquivos rápidos. A workaround que funciona é dividir a operação em lotes usando subdiretórios ou rodar tdh com a flag --batch-size configurada para 100 mil arquivos por vez. Não é elegante, mas resolve sem depender de patches que ainda não existem.

Alternativas quando o tdh não serve

Se o seu cenário é simplesmente apagar arquivos temporários de sistema, ferramentas como o tmpwatch ou o timer do systemd-tmpfiles podem fazer o trabalho sem precisar do tdh. Elas são mais adequadas para limpeza automática agendada e não exigem intervenção manual. Para controle granular de quais extensões ou padrões são processados, o find combinado com rm é mais flexível. Um comando como find /caminho/alvo -type f -name '*.tmp' -mtime +7 -delete faz exatamente o que o tdh faria, mas com sintaxe padrão do sistema de arquivos.

O tdh brilha quando você precisa de operação batch com relatórios detalhados de cada arquivo processado. Se isso não for requisito, talvez a complexidade extra não valha a pena. Para atualizações futuras, acompanhe o repositório oficial do projeto. Versões novas costumam chegar a cada dois ou três meses com melhorias de performance e correções de edge cases como o de links simbólicos que citei antes. Atualizar antes de migrar servidores de produção evita surpresas desagradáveis.