使用curl命令下载ZIP文件
如何使用curl命令下载ZIP文件? 我试过curl -sO
,但是发生了错误。 我想从以下地址下载zip文件: http : //github.com/ziyaddin/xampp/archive/master.zip
但不能。 我必须输入什么?
我使用curl -LO
,它工作正常。 wget
也有效。
尝试wget而不是curl: wget http://github.com/ziyaddin/xampp/archive/master.zip
您可以使用:
curl https://github.com/ziyaddin/xampp/archive/master.zip -O -J -L
xampp-cli-master.zip
为: 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
为: MyFilename.zip
(SSL与Github一起使用 – 使用https://
)
您还可以使用curlrc
配置文件或别名CURL命令来使用curl -O -L
来使其与WGET类似地工作。
咨询: https : //curl.haxx.se/docs/manpage.html#OPTIONS (参见: -O , -J , -L , -o )
请注意使用CURL和-J选项的警告:
没有尝试在提供的文件名中解码%-sequences(尚未),因此该选项可能会为您提供相当意外的文件名。
警告 :明智地使用此选项,尤其是在Windows上。 恶意服务器可以向您发送可能由Windows或某些第三方软件自动加载的DLL或其他文件的名称。
如果要下载文件,请使用wget [option]... [URL]...
有关选项的更多信息,只需在终端输入: man wget
为了你的目的:
wget http://github.com/ziyaddin/xampp/archive/master.zip
请注意,.zip文件将保存在您当前的目录中。
“curl -LOk”使其使用不安全的协议(-k),禁用SSL证书检查(由于错误的路径与证书不匹配而失败),并使用从远程服务器建议的文件名(-O)创建输出文件(也是不安全的)。 在我看来,服务器应该更好地配置在需要的地方创建本地重定向别名,以避免必须传递URL的这个不符合的部分。 但重定向仅使用HTTP重定向(HTTP错误30x),这会导致curl问题(默认情况下)不遵循此(不安全)重定向,并且选项(-k)禁用此安全检查。 因此,请不要使用HTTP重定向(永久移动),而是在服务器的文件系统上添加一些内部链接。 如果这是必需的,因为URL实际上托管在另一个物理服务器上而文件系统之间没有直接访问权限,则应该为该主机使用另一个DNS名称,以便客户端直接查询正确的URL,而不进行任何重定向。 然后修复您的网页(您可以使用您的网络服务器日志查看返回HTTP 30x重定向的位置以及可能需要检查和更新的网页)。 强制客户端使用不安全/未检查的协议不是一个好选择。
所以这肯定是Web服务器上配置非常糟糕的问题:尝试联系他们的管理员来解决这个问题。
要使用curl
下载GitHub(或任何其他重定向网站)中的文件,您必须传递-L
(关注重定向),因此请使用:
curl -L http://github.com/ziyaddin/xampp/archive/master.zip -o xampp.zip