Согласно GNU, кажется, что дата модификации точна только до второго уровня. У меня очень высокоскоростная система, которая генерирует множество файлов в каталог (со скоростью миллисекунды). Я пытаюсь отслеживать новые сгенерированные файлы и отображать имена файлов на терминале.
В настоящее время я использую
touch .file
sleep 1
find -type f -newer .file
чтобы найти файлы, измененные после создания .file
. Однако, поскольку система работает с очень высокой частотой, параметр -newer
в find
, по-видимому, не может перехватывать файлы, которые изменяются/создаются в то же «время» (с точностью до секунд), что и новые touched
.file
. Чтобы уточнить, что я имею в виду, скажем, я коснулся файла в 01:02:03 AM
, новый файл создается в 01:02:03:02 AM
(02 миллисекунды после .file
). find
проигнорирует миллисекунды и сделает вывод, что они созданы одновременно. В результате этот новый файл не newer
, чем .file
, поэтому игнорируется.
Что такое обходной путь? Я думаю об использовании ! -older
, к сожалению, find
не имеет такой возможности. Я не хочу писать собственную версию find
, чтобы уменьшить размер кода. Какие-либо предложения?
-not
? - person Benjamin W.   schedule 29.04.2016for file in *; do if [[ -f ~/processed_files/$file ]]; then echo "Already processed"; else process "$file"; > ~/processed_files/$file; fi; done
. - person that other guy   schedule 29.04.2016