はい、それは-c
オプションです。
--continue
Continue getting a partially-downloaded file. This is useful when you want to
finish up a download started by a previous instance of Wget, or by another
program.
ファイルが同じ場合、2回目のダウンロード試行は停止します。
$ wget -c https://cdn.sstatic.net/askubuntu/img/logo.png
...
Saving to: ‘logo.png’
...
$ wget -c https://cdn.sstatic.net/askubuntu/img/logo.png
...
The file is already fully retrieved; nothing to do.
警告(jofelのコメントから)
サーバー上でファイルが変更されている場合、この-c
オプションは誤った結果をもたらす可能性があります。
を使用すると-c
、wgetはサーバーに、ダウンロード済みのファイルの部分以外のデータを要求するだけで、それ以外は何も行いません。すでにダウンロードされているファイルの一部に変更があったかどうかはチェックしません。したがって、古いファイルと新しいファイルが混在した破損したファイルになる可能性があります。
ローカルテスト
次のようにシンプルなローカルWebサーバーを実行することでテストできます(@roadmrの回答に感謝):
ターミナルウィンドウを開き、次を入力します。
cd /path/to/parent-download-dir/
python -m SimpleHTTPServer
別のターミナルを開いて、次の操作を行います。
wget -c http://localhost:8000/filename-to-download
注記filename-to-download
に位置するファイルである/path/to/parent-download-dir/
、我々はそれをダウンロードしたいです。
wgetコマンドを複数回実行すると、次のように表示されます。
The file is already fully retrieved; nothing to do.
さて、/path/to/parent-download-dir/
ディレクトリに移動してソースファイルに何かを追加します。たとえば、テキストファイルの場合は、簡単な行を追加してファイルを保存します。で試してみてくださいwget -c ...
。これで、ファイルの再ダウンロードが再び表示されるようになりましたが、既にダウンロード済みです。
理由:なぜ再ダウンロードするのですか?
そのサイズは、ダウンロードした古いファイルよりも大きなサイズに変更されたため、他には何もありませんでした。