Використання 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 години тому. Коли ви знайдете цифри, скільки 24-годинних періодів тому до цього файлу востаннє зверталися, будь-яка дробова частина ігнорується, тож, щоб відповідати часу +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)'