我使用“curl -sO”命令从这个GitHub项目链接下载项目文件: http://github.com/ziyaddin/xampp/archive/master.zip
但是,我无法下载。发生错误并说:
Archive: /home/ziyaddin/Desktop/master.zip
[/home/ziyaddin/Desktop/master.zip] End-of-central-directory
signature not found. Either this file is not a zipfile, or it
constitutes one disk of a multi-part archive. In the latter case
the central directory and zipfile comment will be found on the last
disk(s) of this archive. zipinfo: cannot find zipfile directory in
one of /home/ziyaddin/Desktop/master.zip or
/home/ziyaddin/Desktop/master.zip.zip, and cannot find
/home/ziyaddin/Desktop/master.zip.ZIP, period.
但我可以使用curl命令下载此链接: http://cloud.github.com/downloads/pivotal/jasmine/jasmine-standalone-1.3.1.zip
我认为这是因为它位于cloud.github.com。我想知道如何从第一个链接下载curl命令?
答案 0 :(得分:50)
$ curl -LOk https://github.com/ziyaddin/xampp/archive/master.zip % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 119 100 119 0 0 375 0 --:--:-- --:--:-- --:--:-- 388 0 0 0 1706 0 0 1382 0 --:--:-- 0:00:01 --:--:-- 333k
https://
-L
来关注重定向-k
答案 1 :(得分:5)
您还可以下载tarball
( * .tar.gz ):
curl -LkSs https://api.github.com/repos/ziyaddin/xampp/tarball -o master.tar.gz
或者如果你使用-O
你可以省略文件名,但是你保存的“.tar.gz”文件默认命名为“tarball”,所以你必须重命名它并添加“ .tar.gz“filetype postfix。所以使用上面的(小写)-o
。其余的:
Ss
- 使用静音模式,但显示错误(如果有)k
- 使用不安全的 SSL连接,而不检查TLS证书。答案 2 :(得分:2)
$ curl -I http://github.com/ziyaddin/xampp/archive/master.zip HTTP/1.1 301 Moved Permanently Server: GitHub.com Date: Sun, 28 Apr 2013 09:24:53 GMT Content-Type: text/html Content-Length: 178 Connection: close Location: https://github.com/ziyaddin/xampp/archive/master.zip Vary: Accept-Encoding
...如果您想要关注HTTP重定向,则需要使用-L
。或者只是阅读Steven Penny的回答......
答案 3 :(得分:1)
curl -JLO "https://github.com/tada/pljava/archive/V1_6_2.zip"
-J, --remote-header-name 使用标头提供的文件名 (H)。
-L, --location 跟随重定向 (H).
-O, --remote-name 将输出写入名为远程文件的文件。