Використання 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)'