Я хочу найти файлы новее 15 секунд, но старше 2 секунд. Вот скрипт, который я сейчас использую, который захватывает файлы новее 15 секунд:
find /my/directory -name '*.jpg' -not -newermt '-15 seconds'
Любая помощь с благодарностью
Я хочу найти файлы новее 15 секунд, но старше 2 секунд. Вот скрипт, который я сейчас использую, который захватывает файлы новее 15 секунд:
find /my/directory -name '*.jpg' -not -newermt '-15 seconds'
Любая помощь с благодарностью
Ответы:
Вы можете объединять несколько предикатов, связывая их.
Там нет -oldermt, но вы можете написать это как -not -newermt.
Ты хочешь:
-newermt '-15 seconds' сказать, что файл менее 15 секунд, и -not -newermt '-2 seconds' сказать, что файл более 2 секундПытаться:
find /my/directory -newermt '-15 seconds' -not -newermt '-2 seconds'
Или, чтобы быть POSIX-совместимым:
find /my/directory -newermt '-15 seconds' \! -newermt '-2 seconds'
Кроме того, чтобы вы (и другие читатели) знали, что «новее» означает, что он был изменен совсем недавно, а не создан недавно.
-not -newermt '-2 seconds'также будет соответствовать файлам ровно 2 секунды. Используйте, -not -newermt '3 seconds'чтобы исключить их.
touch -d "2 seconds ago" file; find . -newermt '-15 seconds' -not -newermt '-2 seconds'и получил file.
Вы не упомянули свою ОС ....
Это прекрасно работает с современной реализацией find, такой как FreeBSD или с sfind.
find /my/directory -name '*.jpg' -mtime -15s -mtime +2s
Sfind является частью инструментов Schily: http://sourceforge.net/projects/schilytools/files/
ВНИМАНИЕ: Я только что обнаружил проблему в sfind. Если -mtimeаргументы меньше 60 с, он не будет работать правильно, так как время файла в настоящее время сравнивается с отметкой времени 60 секунд в будущем, которая изначально была рассчитана для переключателя года -ls.
Кстати -not, не принадлежит find, это непереносимый GNUism.
bashтег… Таким образом, среда может быть Cygwin, Debian GNU / Hurd, bashработающей на FreeBSD или Solaris,… ;-)
findкажется, что десятичные дроби, хотя и сумасшедшие, могут быть использованы в качестве обходного пути.
!для -не как! expression . Так что, ничего страшного.
primaryот findинформировать людей , что нет необходимости постоянно добавлять новые , primariesчтобы найти , чтобы иметь возможность для расширения функциональных возможностей . Кстати, исправление libfindбыло опубликовано в schily tools.
gfindдобавили -notпсевдоним вообще. Это никогда не было необходимо, и его присутствие можно рассматривать как блокировку в стратегии.
findреализациях.