Exclua arquivos com mais de 5 dias, bem como em todas as subpastas

3

Preciso excluir todos os arquivos com mais de cinco dias em todas as subpastas, mas não as pastas em si. Eu conheço o comando:

find /path/to/files* -mtime +5 -exec rm {} \;

Mas como posso dizer ao Ubuntu para verificar todas as subpastas, mas nunca excluir as próprias pastas. Vou precisar de um -maxdepth 5 em algum lugar?

Obrigado.

    
por warhansen 04.10.2016 / 10:40

2 respostas

14

Primeiro de tudo, não dê um glob para find (no files* ), apenas dê a ele o diretório pai ( /path/to/ ). Ele vai lidar com a recursão e encontrar todos os arquivos. Em seguida, rm nunca excluirá diretórios, então você não precisa se preocupar com isso também. Ainda assim, a maneira mais simples é:

find /path/to/ -type f -mtime +5 -delete

Observe o -type f , que indica find para ver apenas os arquivos e o -delete , que também os exclui. Isso é mais eficiente do que chamar um rm separado para cada resultado.

    
por terdon 04.10.2016 / 10:52
-1

Você também pode usar

find /path/to -type f -mtime 5+ -exec rm {} \;
    
por Tolga Ozses 04.10.2016 / 11:22