做一个inotifywait
监视目录,并尝试排除所有子目录而不排除文件。
inotifywait -r -q --exclude <pattern> dir/
放什么<pattern>
?手册inotifywait
指定:
--exclude <pattern>
Do not process any events whose filename matches the specified POSIX extended regular expression, case sensitive.
没有-type
像中那样的标志find
。我试过(^/)
了,但这似乎排除了一切。
帮助表示赞赏。
由于该
--exclude
选项仅作用于文件名,因此没有直接的方法。您可以尝试迂回的方式,例如使用find
打印所有目录的名称:请注意,我没有指定
-r
,因为这将导致新创建的子目录也被监视。这可能会破坏某些特殊字符。
您也可以尝试:
inotifywait
将排除以list_of_directories
开头的任何文件或文件夹@
(所有文件或文件夹)。如果您使用
inotifywait
的是递归选项,请通过删除限制(也适用于第一个命令)来find
列出所有嵌套的子目录:-maxdepth
-mindepth
保留 以防止find
匹配,.
从而也排除当前目录。只需使用
--exclude '/\..+'
. 这会忽略所有以点开头的文件。(这
.+
部分是为了不排除您的基本文件夹)。inotifywait
由于参数 . 仅检查子目录-r
。在没有该参数的情况下 调用它,它不会监视子目录。
试试这样:
将工作区替换为您的目录名称。