我希望在文件移入系统时监控文件。 iNotify可以告诉我它的新位置吗?
答案 0 :(得分:4)
如果您正在查看文件移动的目录以及文件移动到的目录,那么您将在源目录上收到IN_MOVED_FROM
事件,并在IN_MOVED_TO
事件上目标目录,两者都具有相同的cookie
。然后,您可以使用这两个事件的name
字段来查找文件移入和移出的位置。
如果您只是在观看源目录,或者只是目标目录,那么您将只获得其中一个事件,因此您只有一半的信息。这是inotify的限制。
答案 1 :(得分:1)
您可以在移动之前将文件描述符抓取到文件中,并在以下位置读取符号链接:
'/proc/self/fd/' + $fd
其中$ fd是您的文件描述符,此文件描述符将指向您的文件。注意我只在ext4上测试了它,它适用于LVM2,但不适用于OverlayFS。同时打开文件描述符将阻止删除文件被触发的事件。
Linux内核版本之间可能存在问题