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