使用curl命令下载ZIP文件


Answers:



20

尝试使用wget代替curl: wget http://github.com/ziyaddin/xampp/archive/master.zip


1
下降投票者可以解释吗?还是其他海报?
don.joey 2013年

4
你能解释为什么wget,而不是curl
Jorge Bucaran 2014年

1
更少的命令行(如果您在乎的话)–意味着更少的选择,但是最大的不同是wget支持递归下载
Ran Davidovitz

不知道为什么,但是使用unzip下载的文件出现了错误curl,并且可以正常使用wget
Dinei

15

您可以使用:

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或某些第三方软件自动加载。


5

如果要下载文件,请wget [option]... [URL]...改用。

有关选项的更多信息,只需在终端中输入以下内容: man wget

为了您的目的:

wget http://github.com/ziyaddin/xampp/archive/master.zip

请注意,.zip文件将保存在您所在的当前目录中。


1
解释使用wgetover 的优势将很有帮助curl。对于任何想知道两者之间差异的人,请参见此处
Jorge Bucaran 2014年

@JorgeBucaran我阅读了作者撰写的比较,作者curl也做出wget了次要的贡献。一个明显的遗漏(基于我的一个小项目)是wget比curl检索(<2秒vs. 12秒)的速度快10倍(从https://www.timeanddate.com
WinEunuuchs2Unix

因此,有时当您使用wget而不是直接提供文件但url告诉服务在何处定位和提供文件时,最终下载的是html。因此,对于某些文件,卷曲更好一些
Zloy Smiertniy


1

“ curl -LOk”使其使用不安全的协议(-k),禁用SSL证书检查(由于不正确的路径与证书不匹配而失败),并使用远程服务器建议的文件名(-O)创建输出文件(也不安全)。我认为,最好将服务器配置为在需要时创建本地重定向别名,以避免必须传递URL的此不合格部分。但是重定向仅使用HTTP重定向(HTTP错误30x)进行,这会导致卷曲(默认情况下)不遵循此(不安全)重定向的问题,并且选项(-k)禁用了此安全检查。因此,请不要使用HTTP重定向(永久移动),而应在服务器的文件系统上添加一些内部链接。如果由于URL实际上是托管在另一台物理服务器上且文件系统之间没有直接访问权而需要这样做,则应为此主机使用另一个DNS名称,以便客户端可以直接查询正确的主机,而无需任何重定向。然后修复您的网页(您可以使用网络服务器日志来查看HTTP 30x重定向返回的位置以及可能需要检查和更新的网页)。强制客户端使用不安全/未经检查的协议不是一个好的选择。

因此,这绝对是Web服务器上配置错误的问题:请尝试与管理员联系以解决此问题。


0

好,你可以使用 Axel。axel是一个轻量级命令行下载加速器。它支持HTTP, HTTPS, FTPFTPS协议。它的好又快的选择。

安装 axel使用:

apt-get install axel

然后通过以下方式下载文件:

axel http://github.com/ziyaddin/xampp/archive/master.zip

0

使用该选项-L可以跟随重定向,也可以使用该--output选项为zip文件提供路径和名称。例如:

sudo curl -L https://github.com/CISOfy/lynis/archive/master.zip --output /etc/lynis.zip

注意:如果您无权写入目标文件夹,请使用sudo。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.