я использую inotifywait
отслеживать события в одном файле (вместо каталога), как
$ inotifywait -m -e открыть -e закрыть -e переместить myfile.txt
Когда я открываю и редактирую файл, журналы печатаются, как и ожидалось.
Настройка часов.
Часы установлены.
myfile.txt ОТКРЫТЬ
myfile.txt CLOSE_NOWRITE,CLOSE
Но inotify тоже никогда не испускает ПЕРЕЕХАЛ
, ПЕРЕЕХАЛ ИЗ
события (даже DELETE_SELF
), когда я переименовываю файл. С другой стороны, если я смотрю каталог содержащий мой файл.txt
, а не один файл, события генерируются как обычно.
Один странный момент для меня заключается в том, что открытие и закрытие переименованного файла по-прежнему регистрируют события.
myfile.txt ОТКРЫТЬ
myfile.txt CLOSE_NOWRITE,CLOSE
На данный момент мой файл не мой файл.txt
но имеет другое имя. Примечательно, что inotify не отслеживает никаких событий, вызванных работой с вновь созданным мой файл.txt
.
Мои вопросы:
Как я могу правильно отслеживать события «переименования» одного файла с помощью inotifywait
, при этом не просматривая полный каталог?
Как я могу получить текущее имя просматриваемого файла? --формат "%f"
опция, кажется, всегда печатает исходное имя файла, переданное inotifywait
даже если файл переименован, как показано выше.
Я ищу своего рода «регистратор истории переименований», который работает для заданного набора файлов, разбросанных по файловой системе. Существуют ли какие-либо альтернативы inotify, которые можно использовать для этой конкретной цели?