inotifywait 排除文件类型

Zim*_*mmy 3 shell-script inotify

我在脚本中使用 inotifywait 并想知道是否有办法将隐藏文件排除在外?

我似乎无法确定排除隐藏文件的正则表达式模式。

ilk*_*chu 7

我假设您的意思是以点 ( .)开头的文件名,您可以忽略它们。问题inotifywait --exclude是该模式似乎与文件的完整路径匹配,因此您需要考虑到这一点。

所以,如果你给inotifywait的目录foobar观看,然后将图案对阵像文件名foo/somethingbar/somethingelse。像在正则表达式中一样,您需要对点进行转义。

这应该监视当前目录中的所有创建,除了点文件(它是一个正则表达式,所以我们需要转义点):

inotifywait -ecreate -m --exclude '^\./\.' .
Run Code Online (Sandbox Code Playgroud)

或者,不太具体,通过查找斜杠和点的组合来排除任何目录中的点文件:

inotifywait -ecreate -m --exclude '/\.' foo bar
Run Code Online (Sandbox Code Playgroud)

当然,如果您正在查看在路径的某些部分带有前导点的目录,那将不起作用;它将匹配该路径中的所有内容。