De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.

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.

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


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