0

ディレクトリからファイルを選択するスクリプトを作成しましたinbox。ファイルが別のプロセスから来ているかどうかに関係なく、スクリプトに処理を含める必要があります。ファイルが別のプロセスを通過する場合、スクリプトはファイルがコピーされるまで待機する必要があります。

このために、フラグを作成しました

CHECK_COPY_PROCESS=$(ps -ef|grep -E 'cp|mv|scp'|grep inbox)

フラグCHECK_COPY_PROCESSに何らかの値が含まれている場合、プロセスは待機状態になります。しかし問題は、いくつかのファイルがそのディレクトリのサブディレクトリから来ていると仮定すると、プロセスは上記のロジックが機能しないinbox ように生成されることです。cp file_name ..

4

1 に答える 1

1

lsof を awk と組み合わせて使用​​して、Basile のヒントを使用できます (コマンド名である最初の列でのみ grep を実行します)。

例:

lsof +D /path/to/inbox|awk '$1~/mv|cp|scp/'

現在、マシンにコピーするのに時間がかかる大きなファイルがないため、これはテストされていません。

于 2013-03-11T10:18:51.477 に答える