Isso é bastante fácil (embora note que isso acontece por um tempo de modificação há mais de três dias, já que o tempo de criação está disponível apenas em determinados sistemas de arquivos com ferramentas especiais):
find /a/b/c/1 /a/b/c/2 -type f -mtime +3 #-delete
Remova o #
antes do -delete
, assim que tiver certeza de que está localizando os arquivos que deseja remover.
Para que seja executado pelo cron, eu provavelmente criaria um script executável (adicione um shebang - #!bin/sh
na linha superior do arquivo e torne executável com chmod a+x
), depois coloque-o em um% co_de apropriado % do diretório como cron
ou /etc/cron.daily
. Desde que você não precise de um cronograma mais específico e que esses diretórios existam em sua distro.
Atualizar
Como indicado abaixo, a opção /etc/cron.weekly
para -delete
não é muito portátil. Uma abordagem compatível com POSIX seria:
find /a/b/c/1 /a/b/c/2 -type f -mtime +3 #-exec rm {} +
Novamente, remova o find
quando tiver certeza de que possui os arquivos corretos.
Update2
Para citar Stéphane Chazelas comenta abaixo:
Note that
-exec rm {} +
has race condition vulnerabilities which-delete
(where available) doesn't have. So don't use it on directories that are writeable by others. Some finds also have a-execdir
that mitigates against those vulnerabilities.