una delle tue opzioni è il sottosistema inotify del kernel linux:
inotify è un sottosistema del kernel Linux che agisce per estendere i filesystem per notare le modifiche al filesystem e segnalare tali modifiche alle applicazioni
ma dal inotify
è kernel-land, hai bisogno di qualcosa nello spazio utente per usarlo effettivamente:
- inchron:
Il demone inotify cron (incrond) è un demone che monitora gli eventi del filesystem ed esegue i comandi definiti nelle tabelle di sistema e utente. Il suo utilizzo è generalmente simile a cron(8).
- gioco:
Gamin è un sistema di monitoraggio per file e directory che implementa in modo indipendente un sottoinsieme di FAM, il File Alteration Monitor. Funzionando come un servizio, consente di rilevare le modifiche a un file oa una directory. gam_server funziona come demone per Gamin.
- 'inoticoming':
inoticing - attiva azioni quando i file raggiungono una directory in entrata
c'era una risposta a una domanda simile su askubuntu:
https://askubuntu.com/a/43848/1223
Un altro modo veloce e sporco per farlo è usare inotifywait
dal pacchetto inotify-tools (su fedora).
Mi piace di più questo metodo perché puoi fare tutto da una singola riga di comando bash. Lo uso spesso quando scrivo piccoli programmi per vedere i risultati di ciò che ho appena salvato.
while [[ 1 ]]; do inotifywait -e modify <filename>; make && ./helloworld; done