質問: ファイルが変更されたときにコマンドを実行する方法 ファイルが変更されたときにコマンドを実行するための迅速で簡単な方法が欲しいのです。非常に単純なもの、つまり端末上で実行したままにしておき、そのファイルの処理が終わったらいつでも閉じたいものが欲しいのです。現在、私はこれを使っています:while read; do ./myfile.py ; done それから私はそのターミナルに行き、押す必要があります enter私のエディタでそのファイルを保存するときはいつでも。私が欲しいのはこのようなものです。while sleep_until_file_has_changed myfile.py ; do ./myfile.py ; done またはそれと同じくらい簡単な他の解決策。ところで:私はvimを使用しています、そしてbufwrite上で何かを実行するためにautocommandを追加できることは知っていますが、これは私が今望んでいるような解決策ではありません。更新:シンプルで、できれば破棄できるものが欲しいのですが。さらに、プログラムの出力を見たいので(エラーメッセージを見たいのですが)、端末で何かを実行したいのです。回答について:あなたのすべての答えてくれてありがとう!それらはすべて非常に優れており、それぞれが他のものとは非常に異なるアプローチを取ります。私は1つだけを受け入れる必要があるので、私はそれが最もエレガントではないことを知っていても、私は実際に使ったものを受け入れています(それは単純で、素早く、覚えやすいものでした)。
回答: 私のようにinotify-toolsをインストールできない人のために、これは役に立ちます。watch -d -t -g ls -lr出力が変更されるとこのコマンドは終了します。ls -lrはすべてのファイルとディレクトリをそのサイズと日付とともに一覧表示します。-g, --chgexit exit when the output of command changes. 私はこの答えが誰にも読まれないかもしれないことを知っています、しかし私は誰かがそれに達することを望みます。コマンドラインの例:~ $ cd /tmp ~ $ watch -d -t -g ls -lr && echo "1,2,3" 別の端末を開く:~ $ echo "testing" > /tmp/test 最初の端末は1,2,3を出力します簡単なスクリプトの例:#!/bin/bash dir_to_watch=${1} command=${2} watch -d -t -g ls -lr ${dir_to_watch} && ${command}