104 votes

Comment puis-je télécharger une archive à partir de github à l'aide de curl?

Je suis en train de télécharger une archive à partir de GitHub à l'aide de curl, mais il ne semble pas être la redirection:

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

Remarque: wget fonctionne pour moi:

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

Cependant je veux utiliser curl parce que finalement, je veux décompresser en ligne avec quelque chose comme:

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

J'ai trouvé que l'URL après la redirection s'est avéré être: https://download.github.com/pinard-Pymacs-v0.24-beta1-0-gcebc80b.tar.gz mais je voudrais curl être assez intelligent pour comprendre cela.

167voto

saltycrane Points 1943

Je n'ai pas google correctement. Utilisez l'option-L.

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

50voto

Pavel Repin Points 13751

Cette nouvelle façon de faire c'est:

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

Remplacer user-or-org, repo, et sha1-or-ref en conséquence.

Si vous voulez un fichier zip à la place d'une archive, spécifiez .zip au lieu de .tar.gz suffixe.

Vous pouvez également récupérer l'archive privé de pensions de titres, en précisant -u token:x-oauth-basic option à friser. Remplacer token avec un personnel jeton d'accès.

14voto

knittl Points 64110

vous pouvez également utiliser wget pour »décompresser " inline«, il suffit de préciser stdout comme fichier de sortie (-O -):

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X