1

我正在使用 inotifytools 递归地监视目录。当我使用以下命令时

inotifywait ./test -m

在命令之后,如果我在 下创建导演./test,假设./test/test2. 然后如果我在 下做一些事情test2,比如删除一个文件,或者添加一个文件,没有事件发生就很奇怪了。

好像没有手表test2

这是一个错误还是我只是以错误的方式使用?

4

2 回答 2

1

man 1 inotifywait,您将获得以下输出:

-r, --recursive
监视作为参数传递的任何目录的所有子目录。手表将递归设置到无限深度。不遍历符号链接。新创建的子目录也将被监视。
警告:如果在监视大树的根目录时使用此选项,可能需要一段时间才能建立所有 inotify 监视,并且在此期间不会收到事件。此外,由于每个子目录将建立一个 inotify 手表,因此可能会达到每个用户的最大 inotify 手表数量。默认最大值为 8192;可以通过写入 /proc/sys/fs/inotify/max_user_watches 来增加它。

默认情况下,inotifywait不会监视子目录,因此您需要-r, --recursive强制执行该选项。所以你需要的命令是这样的:

inotifywait -rm 测试

于 2013-12-03T13:05:27.943 回答
-1

inotify 手表不是递归的。(也就是说,如果您打算进行深层通知,则每个目录都需要一个。)

于 2012-01-08T03:12:14.710 回答