Ich habe diese Antwort gesehen .
Sie sollten in Betracht ziehen, inotifywait als Beispiel zu verwenden:
inotifywait -m /path -e create -e moved_to | while read path action file; do echo "The file '$file' appeared in directory '$path' via '$action'" # do something with the file done
Meine Frage ist, dass das obige Skript ein Verzeichnis für die Erstellung von Dateien eines beliebigen Typs überwacht, aber wie ändere ich den inotifywait
Befehl, um nur zu melden, wenn eine Datei eines bestimmten Typs / einer bestimmten Erweiterung erstellt (oder in das Verzeichnis verschoben) wird - z. B. sollte es melden, wenn eine .xml
Datei erstellt wird.
WAS ICH VERSUCHT HABE:
Ich habe den inotifywait --help
Befehl ausgeführt und die Befehlszeilenoptionen gelesen. Es hat --exclude <pattern>
und --excludei <pattern>
Befehle zum EXCLUDE von Dateien bestimmter Typen (mit regEx), aber ich brauche eine Möglichkeit, nur die Dateien eines bestimmten Typs / einer bestimmten Erweiterung zu INCLUDE .
path
obigen Option wahrscheinlich nicht der beste Variablenname, wenn Sie zuerst in einer Shell damit spielen möchten. Wenn Sie es verwenden, können Sie nicht alle Befehle verwenden, da dies im Grunde genommen nur den Standard überschrieben hatPATH
. Daher empfehle ich, stattdessen einen alternativen Variablennamen zufpath
verwenden. Das heißt,while read fpath action file
jeder Standardbefehl, der normalerweise in Ihrer Shell verfügbar ist, ist weiterhin verfügbar.