существует ли сценарий оболочки, который удаляет все файлы в папке, которые старше x минут?
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 минут