Ano, adresář můžete sledovat pomocí inotify pomocí inotifywait
nebo inotifywatch
z nástrojů inotify.
inotifywait
po zjištění události se ukončí. Předejte možnost -r
rekurzivně sledovat adresáře. Příklad:inotifywait -r mydirectory
.
Můžete také určit událost, kterou chcete sledovat, místo sledování všech událostí. Chcete-li čekat pouze na změny obsahu souboru nebo adresáře, použijte volbu -e modify
.
Toto je vylepšení oproti odpovědi uvedené v otázce. Když jeden přeruší skript, proces běhu by měl být ukončen.
#!/bin/sh
sigint_handler()
{
kill $PID
exit
}
trap sigint_handler SIGINT
while true; do
[email protected] &
PID=$!
inotifywait -e modify -e move -e create -e delete -e attrib -r `pwd`
kill $PID
done