Automação de Limpeza: Script Shell para Remover Pastas de Build e Cache do Projeto
O acúmulo de arquivos temporários, pastas de compilação e caches de dependências consome espaço valioso em disco e pode causar erros de compilação por artefatos desatualizados. Este script automatiza a busca e a remoção em massa de diretórios pesados como node_modules, dist, .cache e build em projetos de desenvolvimento. Ele varre a árvore de arquivos de forma recursiva e remove os alvos definidos com segurança.
Bash
#!/bin/bash
# Script para busca e remoção recursiva de diretórios de build e cache
# 1. Diretório raiz da busca e lista de pastas a serem removidas
DIRETORIO_PROJETOS="${1:-.}"
ALVOS=("node_modules" "dist" "build" ".cache")
echo "=== Iniciando limpeza em: $DIRETORIO_PROJETOS ==="
# 2. Iterando sobre a lista de alvos para encontrar e deletar
for PASTA in "${ALVOS[@]}"; do
echo "Buscando diretórios '$PASTA'..."
# Localiza e remove os diretórios correspondentes
find "$DIRETORIO_PROJETOS" -type d -name "$PASTA" -prune -exec rm -rf {} + 2>/dev/null
done
echo "=== Limpeza concluída com sucesso! ==="
Exemplo de uso e execução no terminal:
Bash
# Dar permissão de execução ao script
chmod +x limpa_cache.sh
# Executar no diretório atual
./limpa_cache.sh
# Ou passar um caminho específico como parâmetro
./limpa_cache.sh ~/meus_projetos
Pontos-chave
- Otimização com
-prune: O parâmetro-pruneno comandofindimpede que o algoritmo continue buscando subpastas dentro de um diretório alvo já localizado (como umnode_modulesdentro de outro), acelerando drasticamente a execução. - Execução Eficiente (
-exec ... +): O sufixo+agrupa múltiplos caminhos em uma única chamada dorm -rf, reduzindo a carga de processos no sistema em comparação ao uso de\;. - Segurança na Parâmetro (
${1:-.}): Garante a definição de um caminho padrão (o diretório atual.) caso nenhum argumento de linha de comando seja fornecido no momento da execução. - Supressão de Erros (
2>/dev/null): Redireciona mensagens de permissão negada ou arquivos não encontrados para o dispositivo nulo, mantendo o terminal limpo durante a varredura. - Atenção com
-rf: O uso da flag-rfremove pastas de forma definitiva e sem pedir confirmação; certifique-se de validar o caminho passado no parâmetro antes de rodar o script em ambientes de produção.
