Вопрос:
Есть ли способ отслеживать ход файла в Linux (т.е. новый файл/файл сохранения)?
Подробности:
Мне известен inotify, который можно использовать для отслеживания целых папок на предмет создания, удаления и изменения файлов. . Однако это очень низкий уровень. Текстовые редакторы часто при сохранении файла записывают измененный буфер во временное место, затем перемещают его и перезаписывают исходный файл. inotify увидит это как CREATE
и MOVE
, тогда как мне нужно MODIFY
.
Мне кажется нелогичным, что каждый раз, когда файл сохраняется, он будет интерпретироваться как новый файл. Есть ли какое-либо идентифицирующее значение файла, которое я могу использовать, чтобы отличить создание нового нового файла от сохранения существующего файла? Другой способ задать этот вопрос: «Как работают такие программы, как Beagle, Spotlight, Поиск Windows и Google Desktop обойти Эта проблема"?
Цель:
Вот хороший способ описать то, что я хочу: используя Vim
, если я открою файл и сохраню его (:w
), этот файл будет записан во временный файл, а затем перемещен в исходный файл, обманывая inotify
, заставляя его поверить, что был создан совершенно новый файл, который затем использовался для перезаписи исходного файла. Однако, если добавить файл в subversion (svn
), а затем открыть этот файл с помощью Vim
и сохранить его (:w
), svn
будет знать, что сохраненный файл на самом деле является измененным файлом, а не новым. Откуда svn
это знает?