ファイルを移動してインデックスに名前を変更するためのシェルスクリプト

ファイルを移動してインデックスに名前を変更するためのシェルスクリプト

2つのディレクトリを検討してAくださいB

AA.txt3秒ごとに内容が変更されるテキストファイルが含まれています。

A.txtシェルスクリプトはディレクトリに移動し、B名前をA_1.txt

3秒後にスクリプトをディレクトリA.txtにコピーする必要があります。A_2.txtB

区切り文字を押すまでスクリプトを終了しないでください。

答え1

bashまたはksh93およびinotifywait:を使用してください。

i=0
while true; do
    inotifywait -e close_write A/A.txt
    cp A/A.txt "B/A_$(( ++i )).txt"
done

Ctrl+C押すとスクリプトが終了します。

注:Linuxを使用していないため、inotifywait実際に自分のコンピュータでイベントをキャプチャすることはできませんが、close_writeLinuxではこれが正しく行われることを願っています。

inotifywait書き込みのためにファイルを開いた外部プロセスが書き込みを終了してファイルを閉じたときにA/A.txt返す呼び出し。これにより、スクリプトは引き続きディレクトリにファイルをコピーできますB

これは、時々ファイルに書き込むプロセスとスクリプトを同期するよりも便利です。

関連情報