1

Linux シェルでは、フォルダーをファイルの袋のように扱いたいと考えています。ファイルをこのバッグに入れるプロセスがいくつかあります。次の 2 つの状態のいずれかにあるプロセスは 1 つだけです。

  1. ドキュメントを処理してから削除する
  2. 任意のドキュメントがフォルダに存在するのを待ってから処理します

ドキュメントが処理される順序や名前は関係ありません。

フォルダーからファイルを取得する独自のプロセスは、bash ではどのように見えるでしょうか? 処理とは、ファイル名を引数として別のプログラムを呼び出すことを意味します。

この独自のプロセスは、手動で終了するまで終了しないことに注意してください。

4

4 に答える 4

0

最も簡単な方法は、ファイルをループして処理プログラムを「呼び出し」、ファイルを削除することです。

for f in /path/to/folder/*; do
    program_that_processes_file $f
    rm $f
done

ただし、これには少し問題があります。ファイルを作成するプログラムがアトミックに行わない場合、まだ完全に書き込まれていないファイルを処理したり、削除することさえできます。これに対する最も簡単な解決策は、ライターに一時ディレクトリに書き込みをさせ、ファイルがすべて完了したら、それを最終的な宛先ディレクトリに移動することです。

于 2016-07-04T14:02:29.460 に答える