inotifywait schließt Dateitypen aus

inotifywait schließt Dateitypen aus

Ich verwende inotifywait in einem Skript und frage mich, ob es eine Möglichkeit gibt, versteckte Dateien von der Überwachung auszuschließen?

Ich kann das Regex-Muster zum Ausschließen versteckter Dateien scheinbar nicht bestimmen.

Antwort1

Ich nehme an, Sie meinen Dateinamen, die mit einem Punkt ( .) beginnen. Diese können Sie ignorieren. Das Problem dabei inotifywait --excludeist, dass das Muster mit dem vollständigen Pfad der Datei übereinstimmt, also müssen Sie das berücksichtigen.

Wenn Sie also inotifywaitdie Verzeichnisse foound barzum Beobachten angeben, werden die Muster mit Dateinamen wie foo/something, abgeglichen bar/somethingelse. Wie bei regulären Ausdrücken üblich, müssen Sie den Punkt maskieren.

Dies sollte auf alle Erstellungen im aktuellen Verzeichnis achten, mit Ausnahme von Dotfiles (es ist ein regulärer Ausdruck, also müssen wir die Punkte maskieren):

inotifywait -ecreate -m --exclude '^\./\.' .

Oder, weniger spezifisch, schließen Sie Dotfiles in allen Verzeichnissen aus, indem Sie nach der Kombination aus Schrägstrich und Punkt suchen:

inotifywait -ecreate -m --exclude '/\.' foo bar

Dies funktioniert natürlich nicht, wenn Sie ein Verzeichnis mit einem führenden Punkt an einer beliebigen Stelle des Pfads beobachten. Es wird mit allem in diesem Pfad abgeglichen.

verwandte Informationen