如何使用cURL从GitHub下载tarball?
我正在尝试使用cURL从GitHub下载tarball,但似乎没有redirect:
$ curl --insecure https://github.com/pinard/Pymacs/tarball/v0.24-beta2 <html><body>You are being <a href="https://nodeload.github.com/pinard/Pymacs/tarball/v0.24-beta2">redirected</a>.</body></html>
注意:wget适合我:
$ wget --no-check-certificate https://github.com/pinard/Pymacs/tarball/v0.24-beta2
但是我想使用cURL,因为最终我想用类似下面的内容来解压缩它:
$ curl --insecure https://github.com/pinard/Pymacs/tarball/v0.24-beta2 | tar zx
我发现redirect后的URL竟然是https://download.github.com/pinard-Pymacs-v0.24-beta1-0-gcebc80b.tar.gz ,但我希望cURL足够聪明这个出来了。
使用-L
选项来跟随redirect:
curl -L https://github.com/pinard/Pymacs/tarball/v0.24-beta2 | tar zx
现代化的做法是:
curl -sL https://github.com/user-or-org/repo/archive/sha1-or-ref.tar.gz | tar xz
相应地replaceuser-or-org
, repo
和sha1-or-ref
。
如果你想要一个压缩文件,而不是一个压缩包,指定.zip
而不是.tar.gz
后缀。
您还可以通过指定-u token:x-oauth-basic
选项来检索私人回购的归档。 将token
replace为个人访问令牌。
你也可以使用wget来“解压缩它”。 只需将stdout指定为输出文件( -O -
):
wget --no-check-certificate https://github.com/pinard/Pymacs/tarball/v0.24-beta2 -O - | tar xz