Sì, puoi controllare una directory tramite inotify sistema utilizzando inotifywait
o inotifywatch
da inotify-tools.
inotifywait
uscirà al rilevamento di un evento. Passa l'opzione -r
per guardare le directory in modo ricorsivo. Esempio:inotifywait -r mydirectory
.
Puoi anche specificare l'evento da guardare invece di guardare tutti gli eventi. Per attendere solo modifiche al contenuto di file o directory utilizzare l'opzione -e modify
.
Questo è un miglioramento rispetto alla risposta fornita nella domanda. Quando si interrompe lo script, il processo di esecuzione dovrebbe essere terminato.
#!/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