l'une de vos options est le sous-système inotify du noyau Linux :
inotify est un sous-système du noyau Linux qui agit pour étendre les systèmes de fichiers afin de remarquer les modifications apportées au système de fichiers et de signaler ces modifications aux applications
mais depuis inotify
est kernel-land, vous avez besoin de quelque chose dans l'espace utilisateur pour l'utiliser réellement :
- inchron :
Le démon cron inotify (incrond) est un démon qui surveille les événements du système de fichiers et exécute les commandes définies dans les tables système et utilisateur. Son utilisation est généralement similaire à cron(8).
- gamin :
Gamin est un système de surveillance des fichiers et des répertoires qui implémente indépendamment un sous-ensemble de FAM, le File Alteration Monitor. Fonctionnant en tant que service, il permet de détecter les modifications d'un fichier ou d'un répertoire. gam_server fonctionne comme un démon pour Gamin.
- 'inconnu' :
inoticoming - déclenche des actions lorsque des fichiers arrivent dans un répertoire entrant
il y avait une réponse à une question similaire sur askubuntu :
https://askubuntu.com/a/43848/1223
Une autre façon rapide et sale de le faire est d'utiliser inotifywait
du paquet inotify-tools (sur fedora).
J'aime mieux cette méthode car vous pouvez tout faire à partir d'une seule ligne de commande bash. Je l'utilise souvent lorsque j'écris de petits programmes pour voir les résultats de ce que je viens d'enregistrer.
while [[ 1 ]]; do inotifywait -e modify <filename>; make && ./helloworld; done