使用curl下载文件时如何保留远程文件名

Kyl*_*jee 51 shell scripting curl

可能重复:
如何使用带有cURL的响应头文件名保存文件

我需要以这种格式下载数千张图片

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

如果您在浏览器中粘贴该链接,它会尝试下载名为1.jp2的文件

我想用curl做同样的事情.但是,当我跑

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

文件名报告为404.txt,您可以下载并查看它实际上是我想要的文件.我不能使用-O选项,因为分配给该文件的名称不好,我有技术原因需要系统上使用的实际名称.

如何让curl下载相同的文件我在浏览器中检索没有问题?谢谢.

Gen*_* S. 80

解决方案是使用 -O -J

-O, --remote-name          Write output to a file named as the remote file  
-J, --remote-header-name   Use the header-provided filename
Run Code Online (Sandbox Code Playgroud)

所以...

curl  -O -J  'http://oregondigital.org/cgi-bin/showfile.exe?CISOROOT=/baseball&CISOPTR=0'
Run Code Online (Sandbox Code Playgroud)

我不得不升级我的CURL.我有7.19不支持-J但7.22(这是最新的).

  • 仅“--remote-name”就足够了。 (6认同)
  • 你可以写`-OJ`.或者例如`-LOJR`,如果你与其他选项结合使用 (4认同)