LINUX.ORG.RU

Как правильно детектить переименование с помощью inotify?

 


0

2

Вместо логичного одного события переименования inotify предоставляет два: IN_MOVED_FROM и IN_MOVED_TO. Вроде бы все просто, но вот беда в том что они не одновременно приходят.
Кто сталкивался как правильно поступить? После IN_MOVED_FROM устанавливать таймер и если IN_MOVED_TO не прийдет, то считать что файл удален?
Задача стоит в том чтоб следить за директорией, тоесть IN_MOVED_TO без IN_MOVED_FROM считаем за создание, а IN_MOVED_FROM без IN_MOVED_TO считаем за удаление. При чем оба события прийдут только если происходит слежение за директорией куда/откуда будет перемещен файл.
Можно конечно обойтись костылем в виде таймера, но может быть есть более правильный способ?

★★

Если просто переименование - то следить за инодами. В общем случае - без костылей наверное никак.

anonymous
()
Ответ на: комментарий от Reset

ставишь watch на появившийся файл, а потом IN_MOVE_SELF

А это к чему? Слежение не проблема, связывание IN_MOVED_FROM и IN_MOVED_TO не проблема для этого есть cookie. Проблема в том что неизвестно когда прийдет IN_MOVED_TO, если вообще прийдет. А реагировать желательно как можно быстрее.

V1KT0P ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.