Может ли iNotify сообщить мне, куда перемещается отслеживаемый файл? - PullRequest
2 голосов
/ 15 февраля 2011

Я хочу отслеживать файл во время его перемещения в системе.Может ли iNotify рассказать мне о своей новой должности, когда он двигается?

Ответы [ 2 ]

4 голосов
/ 15 февраля 2011

Если вы смотрите как каталог, из которого был перемещен файл, так и каталог, в который был перемещен файл, вы получите событие IN_MOVED_FROM в исходном каталоге и событие IN_MOVED_TO в целевом каталоге, оба с одинаковыми cookie. Затем вы можете использовать поля name двух событий, чтобы узнать, куда и куда был перемещен файл.

Если вы смотрите только исходный каталог или только целевой каталог, то вы получите только одно из событий, поэтому у вас будет только половина информации. Это ограничение inotify.

1 голос
/ 28 июля 2015

Перед перемещением вы можете получить дескриптор файла и прочитать символическую ссылку по адресу:

'/proc/self/fd/' + $fd

где $ fd - ваш файловый дескриптор, этот файловый дескриптор будет указывать на ваш файл. Примечание. Я проверял это только на ext4, и он работает с LVM2, но не работает с OverlayFS. Также открытие файлового дескриптора заблокирует удаление событий из файла.

Также могут быть проблемы между версиями ядра Linux

...