web-dev-qa-db-ja.com

wgetにファイルが存在する場合、ダウンロードをスキップしますか?

これはwgetを実行する最も簡単な例です。

wget http://www.example.com/images/misc/pic.png

しかし、pic.pngがすでに利用可能な場合、wgetがダウンロードをスキップするようにする方法は?

168
nais inpoh gan

次のパラメーターを試してください。

-nc--no-clobber:既存のファイルにダウンロードするダウンロードをスキップします。

サンプル使用法:

wget -nc http://example.com/pic.png
236
plundra

-nc--no-clobberオプションは、新しいファイルがダウンロードされないため、最適なソリューションではありません。代わりに-Nを使用する必要があります。これは、サーバーのバージョンが新しい場合にのみファイルをダウンロードして上書きするため、正しい答えは次のとおりです。

wget -N http://www.example.com/images/misc/pic.png

-rまたは-pの有無にかかわらず、-Nを指定してWgetを実行すると、ファイルの新しいコピーをダウンロードするかどうかの決定は、ローカルおよびリモートのタイムスタンプとファイルのサイズに依存します。 -ncは、-Nと同時に指定することはできません。

-N--timestamping:タイムスタンプをオンにします。

173

Wgetを-rまたは-pで実行し、-N-nd、または-ncを使用しない場合、ファイルを再ダウンロードすると、新しいコピーが単に上書きされます老人。

したがって、-ncを追加するとこの動作が防止され、代わりに元のバージョンが保持され、サーバー上の新しいコピーはすべて無視されます。

GNUで詳細を参照してください。

23
Mahesh

私が探していた答えは https://unix.stackexchange.com/a/9557/114862 です。

ローカルファイルのサイズがサーバーバージョン以上の場合に-cフラグを使用すると、再ダウンロードが回避されます。

11
jsta