Точность о событии incron

В настоящее время я изучаю немного incron. Чтобы узнать, у меня есть работающий incron на виртуальной машине, наблюдающий, когда файл перемещается в наблюдаемую папку.

Вот incron:

/var/share/entrant/DEFAULT/ IN_CLOSE,IN_CLOSE_WRITE,IN_CLOSE_NOWRITE /opt/maarch/separateur_qr/scripts/incron.sh $@$#

Так что используйте IN_CLOSE, IN_CLOSE_WRITE, IN_CLOSE_NOWRITE событие. Но после прочтения документа Incron я вижу IN_MOVE_TO событие.

Почему это работает с этими 3 событиями? Для меня это бред, потому что я не думаю, что файл открывается при перемещении.

1 ответ

Решение

Будет ли файл открыт или нет при перемещении, зависит от целевого местоположения:

Когда целевое местоположение находится в той же файловой системе, что и исходное местоположение, mv будет просто использовать rename syscall и не открывайте файл.

Когда целевое местоположение находится в другой файловой системе, mv откроет файл, скопируйте его используя read / write системные вызовы и, наконец, удалить оригинальный файл.

Другие вопросы по тегам