如何使用curl命令下载ZIP文件?我尝试过curl -sO
,但发生错误。我想从以下地址下载zip文件:http :
//github.com/ziyaddin/xampp/archive/master.zip
但不能。我必须输入什么?
如何使用curl命令下载ZIP文件?我尝试过curl -sO
,但发生错误。我想从以下地址下载zip文件:http :
//github.com/ziyaddin/xampp/archive/master.zip
但不能。我必须输入什么?
Answers:
尝试使用wget代替curl: wget http://github.com/ziyaddin/xampp/archive/master.zip
wget
,而不是curl
?
unzip
下载的文件出现了错误curl
,并且可以正常使用wget
您可以使用:
curl https://github.com/ziyaddin/xampp/archive/master.zip -O -J -L
另存为: xampp-cli-master.zip
-L
的情况下,完全没有发现重定向。-O
用于远程文件名(master.zip
)-J
(与一起使用-O
)允许远程标头文件名(xampp-cli-master.zip
)
或用于-o
创建自己的文件名:
curl https://github.com/ziyaddin/xampp/archive/master.zip -L -o MyFilename.zip
另存为: MyFilename.zip
注意:( GitHub支持SSL-使用https://
)
您还可以使用curlrc
配置文件或别名CURL命令来使用curl -O -L
它,以使其类似于WGET。
咨询:https : //curl.haxx.se/docs/manpage.html#OPTIONS(请参阅:-O,-J,-L,-o)
注意使用带有-J选项的CURL的警告:
目前还没有尝试解码提供的文件名中的%-sequences,因此此选项可能会为您提供意想不到的文件名。
警告:请谨慎使用此选项,尤其是在Windows上。流氓服务器可能会向您发送DLL或其他文件的名称,而DLL或其他文件的名称可能会由Windows或某些第三方软件自动加载。
如果要下载文件,请wget [option]... [URL]...
改用。
有关选项的更多信息,只需在终端中输入以下内容: man wget
为了您的目的:
wget http://github.com/ziyaddin/xampp/archive/master.zip
请注意,.zip文件将保存在您所在的当前目录中。
curl
也做出wget
了次要的贡献。一个明显的遗漏(基于我的一个小项目)是wget比curl检索(<2秒vs. 12秒)的速度快10倍(从https://www.timeanddate.com
要使用来下载GitHub(或进行重定向的任何其他网站)中的文件curl
,您必须通过-L
(遵循重定向),因此请使用:
curl -L http://github.com/ziyaddin/xampp/archive/master.zip -o xampp.zip
“ curl -LOk”使其使用不安全的协议(-k),禁用SSL证书检查(由于不正确的路径与证书不匹配而失败),并使用远程服务器建议的文件名(-O)创建输出文件(也不安全)。我认为,最好将服务器配置为在需要时创建本地重定向别名,以避免必须传递URL的此不合格部分。但是重定向仅使用HTTP重定向(HTTP错误30x)进行,这会导致卷曲(默认情况下)不遵循此(不安全)重定向的问题,并且选项(-k)禁用了此安全检查。因此,请不要使用HTTP重定向(永久移动),而应在服务器的文件系统上添加一些内部链接。如果由于URL实际上是托管在另一台物理服务器上且文件系统之间没有直接访问权而需要这样做,则应为此主机使用另一个DNS名称,以便客户端可以直接查询正确的主机,而无需任何重定向。然后修复您的网页(您可以使用网络服务器日志来查看HTTP 30x重定向返回的位置以及可能需要检查和更新的网页)。强制客户端使用不安全/未经检查的协议不是一个好的选择。
因此,这绝对是Web服务器上配置错误的问题:请尝试与管理员联系以解决此问题。
使用该选项-L
可以跟随重定向,也可以使用该--output
选项为zip文件提供路径和名称。例如:
sudo curl -L https://github.com/CISOfy/lynis/archive/master.zip --output /etc/lynis.zip
注意:如果您无权写入目标文件夹,请使用sudo。