Oui, vous pouvez regarder un répertoire via le inotify système utilisant inotifywait
ou inotifywatch
depuis les outils inotify.
inotifywait
sortira lors de la détection d'un événement. Passer l'option -r
pour surveiller les répertoires de manière récursive. Exemple :inotifywait -r mydirectory
.
Vous pouvez également spécifier l'événement à surveiller au lieu de regarder tous les événements. Pour attendre uniquement les changements de contenu de fichier ou de répertoire, utilisez l'option -e modify
.
Il s'agit d'une amélioration par rapport à la réponse fournie dans la question. Quand on interrompt le script, le processus d'exécution doit être tué.
#!/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