Найти все файлы старше одной минуты

Найти все файлы старше одной минуты

Как можно использовать findдля выбора файлов, которые были записаны и не изменены за последнюю минуту?

Я знаю, что можно сделать наоборот, найти файлы, измененные за последние 60 секунд, с помощью -mtime -60s, но мне нужны те, которые не были изменены за последние 60 секунд.

Я использую Linux и получаю эту ошибку, если использую секунды:

find ??/ -mtime +60s -name blah.tsv
find: invalid argument `+60s' to `-mtime'

решение1

Использоватьfind /path -type f -mtime +60s

Знак -перед цифрами не является обычным «аргументным тире», а означает «меньше чем». +Затем следует «больше чем».

От man find:

Все основные элементы, принимающие числовой аргумент, допускают наличие перед числом знака плюс (``+'') или знака минус (``-''). Предшествующий знак плюс означает «больше, чем n», предшествующий знак минус означает «меньше, чем n», и ни один из них не означает «ровно n».

Следует отметить, что дляровно н, время округляется. Так что 1(1 день) не означает 86400 секунд.

решение2

find . -type f -mmin +1

Пример

$ ls *
four.txt  one.txt  three.txt  two.txt

$ touch foo && find . -mmin +1
.
./three.txt
./four.txt
./two.txt
./one.txt

решение3

Второе -- -mtime -60sэтонетразделитель вариантов.

-mtimeявляется опцией, и за ней следуетаргумент вариантаАргументом опции является -60s, а -в нем — часть самого аргумента опции,нетразделитель опций. Означает «менее 60 секунд». Аргументы опций 60sи +60sозначают «равно 60 секундам» и «больше 60 секунд» соответственно.

В руководстве Apple MacOS и руководстве FreeBSD префиксы +и упоминаются -только в одном месте, и нигде не упоминается, что они означают. Вот что они означают.

find( Довольно интересно, что в руководстве GNU Info для GNU есть такое же упущение. Однако findсинтаксис GNU для времени несколько отличается от findсинтаксиса BSD и MacOS.)

дальнейшее чтение

решение4

В системах Unix за -mtime следовал знак +/-, за которым следовало число и единицы времени. [+-]nn[dms]

Linux использует mtime для дней, mmin для минут, но, похоже, нет опции секунд и не используется спецификатор единиц времени. + или - по-прежнему относится к большему или меньшему времени, а не к аргументу опции, как упоминалось выше.

Вы можете использовать -mmin 1, ноhttps://unix.stackexchange.com/questions/238738/find-files-newer-than-15-seconds-but-older-than-2-secondsобсуждается, как обращаться со секундами в целом.

Связанный контент