我正在运行命令
curl -O "http://www.*site*.com/[1-9].png"
但下载失败。-输出如下
[1/10]: http://www.*site*.com/1http://w --> 1.png
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 531 0 531 0 0 1618 0 --:--:-- --:--:-- --:--:-- 1618
文件 1.png 包含以下 html:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body><script type="text/javascript">//<![CDATA[try{(function(a){var b="http://",c="www.*site*.com",d="/cdn-cgi/cl/",e="img.gif",f=new a;f.src=[b,c,d,e].join("")})(Image)}catch(e){}//]]></script>
<h1>Not Found</h1>
<p>The requested URL /1http://w was not found on this server.</p>
<p>Additionally, a 404 Not Found
error was encountered while trying to use an ErrorDocument to handle the request.</p>
</body></html>
看起来它在请求的末尾重复了地址——不知道为什么
一次对每个文件运行一个命令
curl -O "http://www.*site*.com/1.png"
注意我也尝试过
curl "http://www.*site*.com/[1-9].png" -o "#1.ext"
所以它不是 -O 选项。
答案1
您可以使用 xargs 或简单的 for 循环来执行:
for i in `seq 0 9` ; do curl -O "http://www.*site*.com/$i.png"; done
编辑:我不知道您可以将这样的语法与 curl 一起使用...我试过了,它对我而言可以使用您的语法,即使没有参数-o
。(使用 curl 7.26.0)
答案2
我能够使用 wget 按照您的示例完成此操作:
wget http://www.*site*.com/[1-9].png
在我的现实生活中的测试中:
wget https://raw.githubusercontent.com/jodumont/configFile/master/etc/mysql/conf.d/{docker,mysql,mysqld,mysqld_safe_syslog}.cnf