Использование find:
find ~/tmp -type f -mtime +0 -delete
~/tmp каталог для поиска рекурсивно, измените его соответственно
-type f будет искать только файлы
-mtime +0 который будет соответствовать файлу, если он был последний раз изменен один день или более назад
-delete просто удалит соответствующие файлы
Здесь выгода -mtime +0, большинство может подумать об использовании, -mtime +1но findбудет игнорировать любое дробное время при расчете дней. Таким образом, -mtime +1будет соответствовать файл, если последняя модификация была сделана как минимум 2 дня назад.
Цитирование man find, -mtimeимеет то же соглашение о сроках, что и -atime:
-платец
Последний раз к файлу обращались n * 24 часа назад. Когда команда find выясняет, сколько 24-часовых периодов назад к файлу последний раз обращались, любая дробная часть игнорируется, поэтому для соответствия -atime +1 файл должен был быть получен как минимум два дня назад.
Также обратите внимание, что если вам нужна точность, вы должны -mminвыбрать опцию findдля указания времени в минутах.
Чтобы запустить его периодически через 3 часа, вы можете добавить cronзапись.
Запустите crontab -eи добавьте:
00 */3 * * * /usr/bin/find ~/tmp -type f -mtime +0 -delete
Использование zshдля удаления файлов:
rm ~/tmp/**/*(.-m+0)
Добавление к cron:
00 */3 * * * /usr/bin/zsh -c 'rm ~/tmp/**/*(.-m+0)'