iNotify可以告诉我移动受监控文件的位置吗?

时间:2011-02-15 07:24:51

标签: linux inotify

我希望在文件移入系统时监控文件。 iNotify可以告诉我它的新位置吗?

2 个答案:

答案 0 :(得分:4)

如果您正在查看文件移动的目录以及文件移动到的目录,那么您将在源目录上收到IN_MOVED_FROM事件,并在IN_MOVED_TO事件上目标目录,两者都具有相同的cookie。然后,您可以使用这两个事件的name字段来查找文件移入和移出的位置。

如果您只是在观看源目录,或者只是目标目录,那么您将只获得其中一个事件,因此您只有一半的信息。这是inotify的限制。

答案 1 :(得分:1)

您可以在移动之前将文件描述符抓取到文件中,并在以下位置读取符号链接:

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

其中$ fd是您的文件描述符,此文件描述符将指向您的文件。注意我只在ext4上测试了它,它适用于LVM2,但不适用于OverlayFS。同时打开文件描述符将阻止删除文件被触发的事件。

Linux内核版本之间可能存在问题