2

существует ли сценарий оболочки, который удаляет все файлы в папке, которые старше x минут?

3 ответа3

3

Это должно сработать, я протестировал это с *.txt , но вы можете изменить его на все файлы, используя вместо этого *.* :

#!/bin/bash
cd /usr/local/my_logs
find ./*.txt -type f -mmin +5 -exec rm {} \;
1

Это будет выполняться вечно, удаляйте файлы, измененные более чем за три минуты до каждой итерации, и подождите одну минуту, прежде чем делать это снова:

while true
do
    find -type f -mmin +3 -delete
    sleep 60
done

Вы можете добавить -maxdepth 1 если не хотите, чтобы он был рекурсивным.

1

Я использую такой скрипт для удаления резервных копий старше 30 дней:

find "/backups/mysql/" -type f -mtime +30 -print0 | xargs -0 rm -f

Исходя из этого, я думаю, вы могли бы сделать что-то подобное:

find "/yourDir/" -type f -mmin +10 -print0 | xargs -0 rm -f

Я думаю, что получит их за 10 минут

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .