#bash #unix
#bash #unix
Вопрос:
Я пытаюсь удалить файл 12-часовой давности, только все, что было более 12 часов назад, я просто хочу добавить.
find . -name "forum*.sql" -mmin 600 -mmin -780 -delete
Есть ли что-то вроде -mmax, которое я должен определить?
Комментарии:
1. Значение min в mmin означает минуту, а не минимум.
Ответ №1:
Извините, но мне тоже показалось, что ваше описание немного сложно разобрать.
Вот код, который удалит файлы, которые точно были созданы / изменены 12-13 часов назад. Старые файлы и более новые файлы остаются на месте.
Простите за многословность имен переменных, уже поздно, и я надеюсь, что они сделают это решение самодокументируемым.
# currentTime=201104272232
TwelveHrsBefore=201104271032
ThirteenHrsBefore=2001104270932
# make some zero files with date/time range for what is to be deleted.
touch -t ${TwelveHrsBefore} upperLimit.tmpFile
touch -t ${ThirteenHrsBefore} lowerLimit.tmpFile
find . -name "forum*.sql" -newer lowerLimit.tmpFile -a ! -newer upperLimit.tmpFile
# when the above is producing the list of files you want to delete,
# append "| xargs /bin/rm -i" to the end of the find command
# to delete the files
# cleanup your tmp files
rm lowerLimit.tmpFile upperLimit.tmpFile
-newer ... -a ! -newer ...
Может быть неприятно поступать правильно. Я слегка протестировал это сегодня И в прошлом использовал эту технику для производственных заданий, но у меня нет доступа к этому коду, чтобы рассмотреть, что было более сложной проблемой, чем этот пример.
Я надеюсь, что это поможет.