1. ホーム
  2. shell

[解決済み] curlを使用してファイルをダウンロードする際に、リモートファイル名を保持する方法 [重複]。

2022-12-09 20:06:54

質問

重複の可能性があります。

どのように私はcURLで応答ヘッダファイル名を使用してファイルを保存するのですか?

何千枚もの画像を

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

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

私は同じことをするためにcurlを使いたいのです。しかし、私が

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

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

ブラウザで取得するのに問題がないのと同じファイルを、curl にダウンロードさせるにはどうしたらよいでしょうか。ありがとうございます。

どのように解決するのですか?

解決策としては -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をアップグレードしなければなりませんでした。v 7.19 は -J をサポートしていませんでしたが、7.22 (最新) はサポートしています。