Chcę znaleźć pliki nowsze niż 15 sekund, ale starsze niż 2 sekundy. Oto skrypt, którego obecnie używam, który pobiera pliki nowsze niż 15 sekund:
find /my/directory -name '*.jpg' -not -newermt '-15 seconds'
Każda pomoc jest mile widziana
Chcę znaleźć pliki nowsze niż 15 sekund, ale starsze niż 2 sekundy. Oto skrypt, którego obecnie używam, który pobiera pliki nowsze niż 15 sekund:
find /my/directory -name '*.jpg' -not -newermt '-15 seconds'
Każda pomoc jest mile widziana
Odpowiedzi:
Możesz łączyć wiele predykatów, łącząc je w łańcuchy.
Nie ma -oldermt, ale możesz to napisać jako -not -newermt.
Chcesz:
-newermt '-15 seconds' powiedzieć, że plik ma mniej niż 15 sekund, oraz -not -newermt '-2 seconds' że plik ma więcej niż 2 sekundyPróbować:
find /my/directory -newermt '-15 seconds' -not -newermt '-2 seconds'
Lub, aby być zgodnym z POSIX:
find /my/directory -newermt '-15 seconds' \! -newermt '-2 seconds'
Ponadto, abyś ty (i inni czytelnicy) byli świadomi, że „nowszy” oznacza zmodyfikowany niedawno, a nie utworzony niedawno.
-not -newermt '-2 seconds'dopasuje również pliki dokładnie w wieku 2 sekund. Użyj, -not -newermt '3 seconds'aby je również wykluczyć.
touch -d "2 seconds ago" file; find . -newermt '-15 seconds' -not -newermt '-2 seconds'i dostałem file.
Nie wspomniałeś o swoim systemie operacyjnym ....
Działa to dobrze z nowoczesną implementacją find, taką jak ta z FreeBSD lub z sfind.
find /my/directory -name '*.jpg' -mtime -15s -mtime +2s
Sfind jest częścią narzędzi Schily: http://sourceforge.net/projects/schilytools/files/
OSTRZEŻENIE: Właśnie odkryłem problem sfind. Jeśli -mtimeargumenty są mniejsze niż 60s, nie będzie działać poprawnie, ponieważ czasy plików są obecnie porównywane ze znacznikiem czasu 60 sekund w przyszłości, który pierwotnie był obliczany dla zmiany roku -ls.
BTW: -notnie należy find, to nieprzenośny GNUism.
bashtag… Więc środowiskiem może być Cygwin, Debian GNU / Hurd, bashdziałający na FreeBSD lub Solaris,… ;-)
findwydaje się, że dziesiętne, choć szalone, mogą być użyte jako obejście.
!opcję -not as! expression . Więc nic wielkiego.
primaryod, findaby poinformować ludzi, że nie trzeba zawsze dodawać nowych, primariesaby znaleźć możliwość zwiększenia funkcjonalności. BTW: Naprawiono libfindopublikowano w schily tools.
gfindogóle dodano -notalias. Nigdy nie był potrzebny, a jego obecność można postrzegać jako blokadę strategii dla dostawcy.
findwdrożeniach.