Avançar para o conteúdo

Eliminar ou mover ficheiros em lote no sistema Linux

  • por

A shell do Linux tem ferramentas poderosas no que toca a automatizar procedimentos. Uma delas é o comando find, que permite eliminar ou mover ficheiros com mais do que n dias.

Eliminar Ficheiros

 find /path-fich/ -type f -name '*.jpg' -mtime +30 -exec rm {} \; 

Explicação do comando:

  • o primeiro parâmetro (path-fich) é o caminho onde procurar;
  • -type f – tipo de objecto: ficheiro;
  • terceiro parâmetro: filtro, no caso ficheiros jpg (não usar o wildcard em resultados muito extensos. Dá o erro Argument list too long);
  • tempo (-mtime) – no exemplo, lista ficheiros com mais de 30 dias;
  • execução de comando (-exec). no caso, executa o comando rm com cada elemento obtido na pesquisa;
  • \; termina o comando a executar;

Mover Ficheiros

 find /path-fich/ -type f -name '*.jpg' -mtime +30 -exec mv {} /path-pasta-arquivo/ \; 

Adaptado do artigo escrito em: https://www.vionblog.com/linux-delete-files-older-than-x-days/

Etiquetas: