我尝试使用cURL从GitHub下载一个tarball,但它似乎没有重定向:
$ 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
我发现重定向后的URL原来是https://download.github.com/pinard-Pymacs-v0.24-beta1-0-gcebc80b.tar.gz,但我希望cURL足够聪明,能弄清楚这一点。
5条答案
按热度按时间h7appiyu1#
使用
-L
选项跟踪重定向:kq0g1dla2#
现代化的方法是:
相应替换
user-or-org
、repo
和sha1-or-ref
。如果您想要一个zip文件而不是一个tarball,请指定
.zip
而不是.tar.gz
后缀。您还可以通过为curl指定
-u token:x-oauth-basic
选项来检索私有存储库的存档。将token
替换为personal access token.0ve6wy6x3#
你也可以使用wget来»untar it inline«。只需指定stdout作为输出文件(
-O -
):ycl3bljg4#
所有其他解决方案都需要指定发布/版本号,这显然会破坏自动化。
这个解决方案- * 目前经过测试,并且已知可以与Github API v3一起使用-但是可以通过编程方式使用,以获取LATEST版本,而无需指定任何标签或版本号,并将二进制文件取消TARs为您在switch
--one-top-level="pi-ap"
中指定的任意名称。只需在下面的示例中使用您自己的详细信息交换用户f1 linux和repopi-ap*,Bob就是您的叔叔:72qzrwbm5#
一个特定的dir: