1

curl を使用して一連のファイルを次の形式でダウンロードしようとしています。

http://example.com/001.jpg

..

http://example.com/999.jpg

だから私はこのコマンドを使用しました:

time curl " http://example.com/[0-9][0-9][0-9].jpg " -o "#1#2#3.gif"

しかし、いくつかのファイルは存在しません。そのコマンドは私の側でファイルを作成しますが、実際にはエラーページだけが含まれます。

ダウンロードする前に、curlがリモートサーバーに存在するかどうかを確認する方法が必要です。

wget が実行できることはわかっていますが、wget の実行には約 5 倍の時間がかかるようです。wget で試してみたコマンドは次のとおりです。

time wget http://example.com/ {0..9}{0..9}{0..9}.jpg

4

1 に答える 1

1

-f /-failオプションを試してください:

(HTTP)サーバーエラーでサイレントに失敗します(出力はまったくありません)。これは主に、スクリプトなどが失敗した試行をより適切に処理できるようにするために行われます。通常、HTTPサーバーがドキュメントの配信に失敗すると、そのことを示すHTMLドキュメントが返されます(多くの場合、理由なども説明されています)。このフラグは、curlがそれを出力するのを防ぎ、エラー22を返します。

この方法はフェイルセーフではなく、特に認証が含まれる場合(応答コード401および407)、失敗した応答コードがすり抜ける場合があります。

于 2009-07-22T09:39:53.893 に答える