35

我使用“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 命令从第一个链接下载?

4

5 回答 5

75
curl -L -O https://github.com/ziyaddin/xampp/archive/master.zip
  • 你必须使用https://
  • 您必须使用-L跟随重定向
于 2013-04-28T08:59:04.153 回答
7

您还可以使用以下命令下载tarball( *.tar.gz ):

curl -LkSs https://api.github.com/repos/ziyaddin/xampp/tarball -o master.tar.gz

或者如果你使用-O你可以省略文件名,但是你保存的“.tar.gz”文件默认命名为“tarball”,所以你必须重命名它并添加“.tar.gz”文件类型后缀。所以使用-o上面的(小写)。其余的部分:

  • Ss- 使用静默模式,但显示错误(如果有)
  • k- 使用不安全的SSL 连接而不检查 TLS 证书。
于 2014-01-28T18:30:20.740 回答
4
$ curl -I http://github.com/ziyaddin/xampp/archive/master.zip
HTTP/1.1 301 永久移动
服务器:GitHub.com
日期:2013 年 4 月 28 日星期日 09:24:53 GMT
内容类型:文本/html
内容长度:178
连接:关闭
位置:https://github.com/ziyaddin/xampp/archive/master.zip
变化:接受编码

-L...因此,如果您想遵循 HTTP 重定向,则需要使用。或者只是阅读史蒂文彭尼的回答......

于 2013-04-28T09:26:04.820 回答
4

curl -JLO "https://github.com/tada/pljava/archive/V1_6_2.zip"

-J, --remote-header-name 使用标头提供的文件名 (H)。
-L, --location 跟随重定向 (H)。
-O, --remote-name 将输出写入名为远程文件的文件。

要点参考

于 2021-02-20T01:07:12.837 回答
1

上述答案中没有提到的一件事是,如果您有一个非常大的文件,当您转到 GitHub 存储库中的该文件时,您会看到一条消息:

(Sorry about that, but we can’t show files that are this big right now.)

来自 GitHub 的注释屏幕截图,该文件太大而无法显示

要下载如此大的文件,需要在 URL 中添加一个参数,?raw=true如以下curl命令示例所示:

curl -L https://github.com/opengenpos/buildproducts/blob/main/GenPOS_rel_02_03_01_013.exe?raw=true >jkjk.exe

这会在 Windows 命令外壳窗口中产生以下输出:

C:\Users\rickc\Documents>curl -L https://github.com/opengenpos/buildproducts/blob/main/GenPOS_rel_02_03_01_013.exe?raw=true >jkjk.exe
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   146  100   146    0     0    146      0  0:00:01 --:--:--  0:00:01   491
100   157  100   157    0     0    157      0  0:00:01 --:--:--  0:00:01  153k
100 15.7M  100 15.7M    0     0  15.7M      0  0:00:01  0:00:01 --:--:-- 12.7M

C:\Users\rickc\Documents>

并且该文件被下载到名为jkjk.exe.

注意: Windows 10 现在同时具有这两种命令tar,并且curl作为标准命令,现在请参阅Tar 和 Curl Come to Windows!

从 Insider Build 17063 开始,我们向 Windows 工具链引入了两个命令行工具:curlbsdtar. 我知道,已经很久了。我们想赞扬那些创造和维护bsdtar以及curl每天被数百万人使用的很棒的开源工具的人。让我们看一下这些工具将使在 Windows 上进行开发获得更好体验的两种有效方式。

于 2021-12-05T18:27:53.823 回答