我在脚本中使用 inotifywait 并想知道是否有办法排除隐藏文件被监视?
我似乎无法确定排除隐藏文件的正则表达式模式。
答案1
我假设您指的是以点 ( .
) 开头的文件名,您可以忽略它们。问题inotifywait --exclude
是该模式似乎与文件的完整路径匹配,因此您需要考虑到这一点。
因此,如果您提供inotifywait
目录foo
并bar
进行监视,则模式将与文件名匹配,例如foo/something
, bar/somethingelse
。像在正则表达式中一样,您需要转义点。
这应该监视当前目录中除点文件之外的所有创建(它是正则表达式,因此我们需要转义点):
inotifywait -ecreate -m --exclude '^\./\.' .
或者,更具体地说,通过查找斜杠和点的组合来排除任何目录中的点文件:
inotifywait -ecreate -m --exclude '/\.' foo bar
当然,如果您正在查看路径的某些部分带有前导点的目录,那么这将不起作用;它将匹配该路径中的所有内容。