Eine Ihrer Optionen ist das inotify-Subsystem des Linux-Kernels:
inotify ist ein Linux-Kernel-Subsystem, das Dateisysteme erweitert, um Änderungen am Dateisystem zu bemerken und diese Änderungen an Anwendungen zu melden
aber seit inotify
Kernel-Land ist, brauchen Sie etwas im User-Space, um es tatsächlich zu benutzen:
- inchron:
Der inotify Cron-Daemon (incrond) ist ein Daemon, der Dateisystemereignisse überwacht und Befehle ausführt, die in System- und Benutzertabellen definiert sind. Seine Verwendung ähnelt im Allgemeinen cron(8).
- Gamin:
Gamin ist ein Überwachungssystem für Dateien und Verzeichnisse, das eine Teilmenge von FAM, den File Alteration Monitor, eigenständig implementiert. Als Dienst ausgeführt, ermöglicht es die Erkennung von Änderungen an einer Datei oder einem Verzeichnis. gam_server fungiert als Daemon für Gamin.
- 'inoticoming':
inoticoming - löst Aktionen aus, wenn Dateien auf ein eingehendes Verzeichnis treffen
auf askubuntu gab es eine antwort auf eine ähnliche frage:
https://askubuntu.com/a/43848/1223
Ein weiterer schneller und schmutziger Weg, dies zu tun, ist die Verwendung von inotifywait
aus dem inotify-tools-Paket (auf Fedora).
Mir gefällt diese Methode besser, weil Sie alles von einer einzigen Bash-Befehlszeile aus erledigen können. Ich benutze dies oft, wenn ich kleine Programme schreibe, um die Ergebnisse dessen zu sehen, was ich gerade gespeichert habe.
while [[ 1 ]]; do inotifywait -e modify <filename>; make && ./helloworld; done