フォルダー内の新しいファイルを監視するシェルが必要で、x.DONE と x.txt の 2 つのファイルを受け取ります。x.DONE を受け取ったらすぐに、関連する x.txt を取得して、そこから移動する必要があります。このフォルダを削除し、.DONE.
誰か助けてくれませんか?
ありがとう!
フォルダー内の新しいファイルを監視するシェルが必要で、x.DONE と x.txt の 2 つのファイルを受け取ります。x.DONE を受け取ったらすぐに、関連する x.txt を取得して、そこから移動する必要があります。このフォルダを削除し、.DONE.
誰か助けてくれませんか?
ありがとう!
これを試してください(N秒ごとのポーリングを避けてください):
#!/bin/bash
inotifywait -m . | while read dir event file; do
[[ $event == CLOSE_WRITE* && "$file" =~ (x|DONE).txt ]] && case "$file" in
x.txt) file_content="$(<x.txt)" ;;
DONE.txt) mv x.txt /tmp; rm DONE.txt ;;
esac
http://en.wikipedia.org/wiki/Inotifyから:
主な用途の 1 つは、Beagle などのデスクトップ検索ユーティリティです。この機能により、ファイル システムの変更を数分ごとにスキャンすることなく、変更されたファイルのインデックスを再作成できますが、これは非常に非効率的です。
レッドハットのようなディストリビューションについては、inotify-tools
パッケージを見てください。