você está aqui: Home  → Arquivo de Mensagens

Deleção de Arquivos usando o comando Find

Colaboração: Ernesto Charles Niklaus

Data de Publicação: 17 de janeiro de 2011

Muitas vezes temos arquivos armazenados em diversas pastas, e quando precisamos realizar uma limpeza destes arquivos, existe a grande dificuldade de localizar primeiramente onde estão e depois pasta a pasta realizar a limpeza.

Nesta semana precisei liberar espaço em meu servidor, para isso resolvi limpar os backups mais antigos do mysql que faço usando o script automysqlbackup.sh, aí começa o meu problema.

O comando rm -R não consegue apagar arquivos por expressão regular, ou seja:

rm -R "*2009*" retorna rm: cannot remove `*2009*': No such file or directory.

Procurando no google por soluções encontrei apenas scripts para fazer esta tarefa, sendo que muitos deles listavam arquivos usando o comando find.

Tentando criar minha própria solução, lendo o man do Find, descobri que o próprio comando find tem uma ação de deleção que poderia servir nestes casos, o comando é:

  find [diretório raiz] -name "[a expressão]" -delete

No meu caso que precisava limpar arquivos de 2008 utilizei:

  %find /backups -name "*2009-*.gz" -delete

Com isto todos os arquivos dos subdiretórios abaixo de /backups que continham 2009 em seu nome foram deletados.

Ernesto Charles Niklaus é especialista em Redes de Computadores pelo Centro Universitário Padre Anchieta e Analista de Sistemas na Applied Solutions.


Veja a relação completa dos artigos de Ernesto Charles Niklaus