wake-up-neo.net

Wie lade ich mit cURL einen Tarball von GitHub herunter?

Ich versuche, einen Tarball mit cURL von GitHub herunterzuladen, aber er scheint nicht umzuleiten:

$ 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>

Hinweis: wget funktioniert bei mir:

$ wget --no-check-certificate https://github.com/pinard/Pymacs/tarball/v0.24-beta2

Ich möchte jedoch cURL verwenden, da ich es letztendlich inline entpacken möchte mit etwas wie:

$ curl --insecure https://github.com/pinard/Pymacs/tarball/v0.24-beta2 | tar zx

Ich habe festgestellt, dass die URL nach der Umleitung https://download.github.com/pinard-Pymacs-v0.24-beta1-0-gcebc80b.tar.gz lautete, aber ich würde gerne cURL, um klug genug zu sein, um das herauszufinden.

80
saltycrane

Verwenden Sie die -L Option, Weiterleitungen zu folgen:

curl -L https://github.com/pinard/Pymacs/tarball/v0.24-beta2 | tar zx
130
saltycrane

Die modernisierte Art, dies zu tun, ist:

curl -sL https://github.com/user-or-org/repo/archive/sha1-or-ref.tar.gz | tar xz

Ersetzen Sie user-or-org, repo und sha1-or-ref Entsprechend.

Wenn Sie eine Zip-Datei anstelle eines Tarballs möchten, geben Sie das Suffix .Zip Anstelle des Suffix .tar.gz An.

Sie können auch das Archiv eines privaten Repos abrufen, indem Sie die Option -u token:x-oauth-basic Zum Einrollen angeben. Ersetzen Sie token durch persönliches Zugriffstoken.

39
Pavel Repin

Sie können wget auch verwenden, um es inline zu entpacken. Geben Sie einfach stdout als Ausgabedatei an (-O -):

wget --no-check-certificate https://github.com/pinard/Pymacs/tarball/v0.24-beta2 -O - | tar xz
14
knittl

mit einem bestimmten dir

cd your_dir && curl -L https://download.calibre-ebook.com/3.19.0/calibre-3.19.0-x86_64.txz | tar zx

1
zhengquan