我已经成功地为目录中的修改创建了一个观察者,递归:
inotifywait -m -r -e modify --format '%w%f' "$Path" | while read File
do
echo "File $File is modified"
done
但是,我在该目录中有一些符号链接。当我在编辑器中打开它们并更改它们时,inotifywait
不会打印任何东西。
我认为这是因为实际文件位于另一个目录中。
我怎么知道inotifywait
也检测链接的变化?
我已经成功地为目录中的修改创建了一个观察者,递归:
inotifywait -m -r -e modify --format '%w%f' "$Path" | while read File
do
echo "File $File is modified"
done
但是,我在该目录中有一些符号链接。当我在编辑器中打开它们并更改它们时,inotifywait
不会打印任何东西。
我认为这是因为实际文件位于另一个目录中。
我怎么知道inotifywait
也检测链接的变化?
你不能。
inotifywait
监视符号链接本身,而不是它们指向的文件。在幕后
inotifywait
使用inotify
带有标志的系统调用IN_DONT_FOLLOW
,这会导致这种行为。如果要更改,则需要编写自己的inotifywait
,不带标志。我从这个讨论中得到了这个。