
スクリプトで inotifywait を使用していますが、隠しファイルを監視対象から除外する方法があるかどうか知りたいです。
隠しファイルを除外するための正規表現パターンを判別できないようです。
答え1
ドット ( .
) で始まるファイル名を意味していると思いますが、それらは無視できます。問題はinotifywait --exclude
、パターンがファイルのフルパスと照合されるように見えるため、それを考慮する必要があることです。
したがって、監視対象にinotifywait
ディレクトリfoo
とを指定するとbar
、パターンは 、 などのファイル名と一致しますfoo/something
。bar/somethingelse
通常の正規表現と同様に、ドットをエスケープする必要があります。
これは、ドットファイルを除く現在のディレクトリ内のすべての作成を監視する必要があります (これは正規表現なので、ドットをエスケープする必要があります)。
inotifywait -ecreate -m --exclude '^\./\.' .
または、より具体的には、スラッシュとドットの組み合わせを探して、任意のディレクトリ内のドットファイルを除外します。
inotifywait -ecreate -m --exclude '/\.' foo bar
もちろん、パスの一部にドットがあるディレクトリを監視している場合は、これは機能しません。そのパス内のすべての内容が一致します。