我正在使用 inotifytools 递归地监视目录。当我使用以下命令时
inotifywait ./test -m
在命令之后,如果我在 下创建导演./test
,假设./test/test2
. 然后如果我在 下做一些事情test2
,比如删除一个文件,或者添加一个文件,没有事件发生就很奇怪了。
好像没有手表test2
。
这是一个错误还是我只是以错误的方式使用?
我正在使用 inotifytools 递归地监视目录。当我使用以下命令时
inotifywait ./test -m
在命令之后,如果我在 下创建导演./test
,假设./test/test2
. 然后如果我在 下做一些事情test2
,比如删除一个文件,或者添加一个文件,没有事件发生就很奇怪了。
好像没有手表test2
。
这是一个错误还是我只是以错误的方式使用?
man 1 inotifywait
,您将获得以下输出:
-r, --recursive
监视作为参数传递的任何目录的所有子目录。手表将递归设置到无限深度。不遍历符号链接。新创建的子目录也将被监视。
警告:如果在监视大树的根目录时使用此选项,可能需要一段时间才能建立所有 inotify 监视,并且在此期间不会收到事件。此外,由于每个子目录将建立一个 inotify 手表,因此可能会达到每个用户的最大 inotify 手表数量。默认最大值为 8192;可以通过写入 /proc/sys/fs/inotify/max_user_watches 来增加它。
默认情况下,inotifywait
不会监视子目录,因此您需要-r, --recursive
强制执行该选项。所以你需要的命令是这样的:
inotifywait -rm 测试
inotify 手表不是递归的。(也就是说,如果您打算进行深层通知,则每个目录都需要一个。)