Você deve conseguir fazer isso com bastante facilidade com find
. Apenas execute este comando no seu crontab
(isto irá deletar arquivos e subdiretórios):
find /path/to/target -mtime +14 -delete
De man find
-mtime n
File's data was last modified n*24 hours ago.
Numeric arguments can be specified as
+n for greater than n,
-n for less than n,
n for exactly n.
-delete
Delete files; true if removal succeeded. If the removal failed,
an error message is issued. If -delete fails, find's exit sta‐
tus will be nonzero (when it eventually exits). Use of -delete
automatically turns on the -depth option.
Não tenho certeza se -delete
é POSIX, mas se sua implementação de encontrar não tiver -delete
, você também pode usar
find /path/to/target -mtime +14 -exec rm {} +