Você poderia começar dizendo find /var/dtpdev/tmp/ -type f -mtime +15
. Ele encontrará todos os arquivos com mais de 15 dias e imprimirá seus nomes. Opcionalmente, você pode especificar -print
no final do comando, mas essa é a ação padrão. É recomendável executar o comando acima primeiro, para ver quais arquivos estão selecionados.
Depois de verificar se o find
comando está listando os arquivos que você deseja excluir (e nenhum outro), você pode adicionar uma "ação" para excluir os arquivos. As ações típicas para fazer isso são:
-exec rm -f {} \;
(ou, equivalente -exec rm -f {} ';'
)
Isso será executado rm -f
em cada arquivo; por exemplo,
rm -f /var/dtpdev/tmp/A1/B1; rm -f /var/dtpdev/tmp/A1/B2; rm -f /var/dtpdev/tmp/A1/B3; …
-exec rm -f {} +
Isso será executado rm -f
em muitos arquivos ao mesmo tempo; por exemplo,
rm -f /var/dtpdev/tmp/A1/B1 /var/dtpdev/tmp/A1/B2 /var/dtpdev/tmp/A1/B3 …
portanto, pode ser um pouco mais rápido que a opção 1. (Pode ser necessário executar rm -f
algumas vezes se você tiver milhares de arquivos.)
-delete
Isso diz find
para excluir os arquivos, sem executar rm
. Isso pode ser infinitesimalmente mais rápido que as -exec
variantes, mas não funcionará em todos os sistemas.
Portanto, se você usar a opção 2, todo o comando seria:
find /var/dtpdev/tmp/ -type f -mtime +15 -exec rm -f {} +