web-dev-qa-db-ja.com

curlを使用してファイルをダウンロードするときにリモートファイル名を保持するにはどうすればよいですか

可能性のある複製:
cURLで応答ヘッダーファイル名を使用してファイルを保存する方法

何千もの画像を次の形式でダウンロードする必要があります

http://oregondigital.org/cgi-bin/showfile.exe?CISOROOT=/baseball&CISOPTR=

そのリンクをブラウザに貼り付けると、1.jp2という名前のファイルをダウンロードしようとします

Curlを使用して同じことをしたいです。ただし、実行すると

curl -I ' http://oregondigital.org/cgi-bin/showfile.exe?CISOROOT=/baseball&CISOPTR= '

ファイル名は404.txtとして報告されます。これをダウンロードして、実際に必要なファイルであることを確認できます。ファイルに割り当てられた名前が良くないため、-Oオプションを使用できません。また、システムで使用される実際の名前が必要な技術的な理由があります。

ブラウザで問題なく検索できるのと同じファイルをcurlでダウンロードするにはどうすればよいですか?ありがとう。

49
Kyle Banerjee

解決策は、-O -Jを使用することです

-O, --remote-name          Write output to a file named as the remote file  
-J, --remote-header-name   Use the header-provided filename

そう...

curl  -O -J  'http://oregondigital.org/cgi-bin/showfile.exe?CISOROOT=/baseball&CISOPTR=0'

CURLをアップグレードする必要がありました。 -Jをサポートしていないv 7.19がありましたが、7.22(最新)はサポートしています。

77
Genia S.