処理できることを願っています多くの種類ファイルをwget -i
ダウンロードしたらすぐにダウンロードします(リスト内のすべてのファイルが完了するのを待つのではなく、プロセス全体が終了しwget
ます)。問題は、wget
ファイルがその場所からダウンロードされるため、いつファイルを処理しても安全であるか(完全にダウンロードされたか)確認できないことです。理想的な原則的なアプローチは、wget
最初にファイルを一時ディレクトリにダウンロードし、mv
完了したら実際のターゲットディレクトリにダウンロードすることです。アトム*であるため、mv
ターゲットディレクトリにあるすべてのファイルが完全にダウンロードされ、処理の準備ができていることを確認できます。
マンページを見ましたが、これに関連する内容が見つからないようです。現在ハッキングはfuser
。wget
しかし、これは非常に脆弱なので(wget
ファイルを何度も開くとどうなりますか?)、避けたいと思います。
これを完全に達成する方法がない場合、同じ効果を得るための解決策はありますか?関連する場合、これらのファイルはHTMLページです。
*追加:明らかにmv
おそらく原子ではないでしょう。(私の環境では本当です。) 厳しい原子性が必要だとは思わない。唯一の要件は、ファイル名がターゲットディレクトリに変更されるとファイルが完全にダウンロードされることです(そして、コンテンツ全体は新しいパスですぐに利用可能になります)。
編集:プロセスを複数のコマンドに分割することは、特定のコア機能(速度制限、HTTP接続の維持、DNSキャッシュなど)wget
の使用を防ぐため、理想的ではありません。wget
答え1
代わりに使用してくださいaria2c
:
aria2c --on-download-complete="/path/to/script" -i file
したがって、スクリプトは次のようになります。
#!/bin/bash
notify-send "Finished: $3"
$1
aria2cのgidです。$2
ファイル数です。$3
ファイル名です。