Widziałem tę odpowiedź .
Jako przykład należy rozważyć użycie inotifywait:
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
Moje pytanie brzmi: powyższy skrypt obserwuje katalog do tworzenia plików dowolnego typu, ale jak zmodyfikować inotifywait
polecenie, aby raportowało tylko wtedy, gdy plik określonego typu / rozszerzenia zostanie utworzony (lub przeniesiony do katalogu) - np. Powinien zgłoś, kiedy .xml
utworzony zostanie dowolny plik.
CO SPRÓBOWAŁEM:
Uruchomiłem inotifywait --help
polecenie i przeczytałem opcje wiersza polecenia. Ma --exclude <pattern>
i --excludei <pattern>
poleceń WYKLUCZAJă pliki niektórych typów (przy użyciu regex), ale muszę sposób obejmować tylko pliki określonego typu / rozszerzenia.
path
powyższego prawdopodobnie nie jest najlepszą nazwą zmiennej, jeśli chcesz grać z tym pierwszym w powłoce. Jeśli go użyjesz, nie będziesz w stanie używać poleceń i wszystkiego, ponieważ to po prostu przesłoniło standardPATH
. Dlatego zalecam użycie alternatywnej nazwy var, takiej jakfpath
zamiast. tj.while read fpath action file
wtedy każde standardowe polecenie zwykle dostępne z twojej powłoki nadal będzie.