たとえば、ファイルを監視するには/tmp/somefile123いくつかのイベントの後に作成されました。inotifywaitしかし、ここに問題があります:
# inotifywait -q -e create /tmp/somefile?*
Couldn't watch /tmp/somefile?*: No such file or directory
そのようなファイルは存在しないので、そこにあるかどうかを知りたいのです。
この問題を解決するにはどうすればいいでしょうか?
上院: 私が何を達成したいのかを説明すれば、もっと明確になるかもしれません。
CPU 消費を最小限に抑えたシェル スクリプト (sh) を次のように記述する必要があります。
if [ $(inotifywait -e create $SPECIFIC_FILE) ]; then
blah-blah-blah some actions
fi
# And then similarly monitor if this file was deleted and then do another actions
スクリプトの実行が停止すると予想されますinotifywait -e $SPECIFIC_FILE を作成するこの$SPECIFIC_FILEが作成されるまでは、
while [ ! -f $SPECIFIC_FILE ]; do
blah-blah-blah some actions
sleep 1
done
答え1
持つことによってinotifywaitチェックしてください親ディレクトリ:
/tmp$ inotifywait -e create -d -o /home/me/zz /tmp
/tmp$ touch z1
/tmp$ cat ~/zz
/tmp/ CREATE z1
イベントの時間形式を指定するには、-timefmtオプション。また、例えばスクリプトファイルを実行してすぐに動作させたい場合には、テール-fログファイルを継続的に監視するためのスクリプトファイルでは、/ホーム/私/zzまたは、名前付きパイプファイルしてinotifywaitスクリプトがそこから読み取りながら、そこに書き込みます。