0

フォルダー内の新しいファイルを監視するシェルが必要で、x.DONE と x.txt の 2 つのファイルを受け取ります。x.DONE を受け取ったらすぐに、関連する x.txt を取得して、そこから移動する必要があります。このフォルダを削除し、.DONE.

誰か助けてくれませんか?

ありがとう!

4

2 に答える 2

1

これを試してください(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パッケージを見てください。

于 2013-09-27T19:20:39.287 に答える