Я хотел бы, чтобы команда Linux нашла файлы, измененные за последние n
секунды.
Есть ли сценарий оболочки или другой инструмент, который я могу запустить из интерфейса командной строки или графического интерфейса?
Используйте команду find следующим образом:
find . -name "*.txt" -mtime -60s
Чтобы найти все *.txt
файлы, измененные за последние 60 секунд.
find: missing argument to `-mtime'
. Тем не менее, я могу получить желаемое поведение, используя -mmin и десятичный аргумент. Я не смог найти никакой ссылки в справочной странице для поиска для использованияs
в качестве аргумента.-mtime
. «60-е годы» также не являются допустимой опцией в POSIX или GNU find. Аргументом-mtime
является число, которое указывает количество 24-часовых периодов назад, когда файл был изменен.Решение с указанием секунд mtime не работает на моих системах Linux, которые используют
find --version
==find (GNU findutils) 4.4.2
.Я получаю следующую ошибку:
Тем не менее, я могу использовать
-mmin
(для изменения за последние m минут) и может принимать десятичный аргумент; Например, следующее находит файлы, измененные за последние 30 секунд.Так, например; создавая файлы, последние измененные 1 с, 6 с, 11 с, ... назад за последние 120 секунд, эта команда находит:
Так что если вам это действительно нужно за считанные секунды, вы можете сделать что-то вроде:
источник
Подобно тому, что предложил Гленн, если вы хотите найти все измененное, скажем, во время, в течение которого выполнялся процесс установки, может быть проще сделать что-то вроде:
Тогда вам не нужно делать расчет времени; вы просто находите вещи, измененные после файла контрольных точек.
источник
Если у вас есть версия find, которая не поддерживает,
-mtime -60s
тогда лучшим решением будетисточник
Самый простой способ сделать это:
-mtime -60s
Вариант, упомянутый в ответе, не работает на многих версияхfind
, даже в 2016 году-newermt
это гораздо лучший вариант для нас. Он может анализировать много разных форматов даты и времени.Альтернативный метод, использующий
mmin
это:Эта опция может не работать для всех
find
версий.источник
Если вы отслеживаете изменения файлов в каталоге, вы, вероятно, захотите использовать inotify-tools вместо бесконечного цикла опроса.
источник
Если ваша версия
find
не принимает секунды или реальные значения, как у меня, используйте-mmin
, но укажите 0, и все файлы будут изменены менее чем за минуту:источник