可能重复:
How do I save a file using the response header filename with 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下载相同的文件我在浏览器中检索时没有问题?感谢。
答案 0 :(得分:70)
解决方案是使用-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。我有7.19不支持-J但7.22(这是最新的)。
答案 1 :(得分:-2)
你可以使用-o选项吗?例如
curl 'http://oregondigital.org/cgi-bin/showfile.exe?CISOROOT=/baseball&CISOPTR=[0-9]' -o "#1.jpg"