オプションの 1 つは、Linux カーネルの inotify サブシステムです:
<ブロック引用>inotify は Linux カーネル サブシステムであり、ファイル システムを拡張してファイル システムの変更を通知し、それらの変更をアプリケーションに報告する役割を果たします
しかし inotify
以降 はカーネルランドです。実際に使用するには、ユーザー空間に何かが必要です:
- 時間:
inotify cron デーモン (incrond) は、ファイルシステム イベントを監視し、システムおよびユーザー テーブルで定義されたコマンドを実行するデーモンです。これは一般的に cron(8) に似ています。
- ガミン:
Gamin は、FAM のサブセットである File Alteration Monitor を個別に実装する、ファイルとディレクトリの監視システムです。サービスとして実行すると、ファイルまたはディレクトリへの変更を検出できます。 gam_server は Gamin のデーモンとして機能します。
- 'inoticoming':
inoticoming - ファイルが着信ディレクトリにヒットしたときにアクションをトリガーします
askubuntu に同様の質問への回答がありました:
https://askubuntu.com/a/43848/1223
これを行うもう 1 つの手っ取り早い方法は、 inotifywait
を使用することです。 inotify-tools パッケージ (fedora 上) から。
1 つの bash コマンド ラインからすべてを実行できるため、この方法の方が気に入っています。保存したばかりの結果を確認するために小さなプログラムを作成するときに、これをよく使用します。
while [[ 1 ]]; do inotifywait -e modify <filename>; make && ./helloworld; done