Использование 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)'