você está aqui: Home
→
Arquivo de Mensagens
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.