[linux] cURL을 사용하여 GitHub에서 tarball을 다운로드하려면 어떻게해야합니까?

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이 충분히 똑똑해 지기를 바랍니다 . 이 밖으로.



답변

-L옵션을 사용하여 리디렉션을 따르십시오.

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

교체 user-or-org, repo그리고 sha1-or-ref그에 따라.

tarball 대신 zip 파일을 원하면 접미사 .zip대신 지정하십시오 .tar.gz.

-u token:x-oauth-basiccurl 옵션을 지정하여 개인 저장소의 아카이브를 검색 할 수도 있습니다 . 교체 token개인 액세스 토큰.


답변

wget을 사용하여»인라인까지«할 수도 있습니다. stdout을 출력 파일 ( -O -) 로 지정하기 만하면됩니다 .

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


답변

다른 모든 솔루션은 분명히 자동화를 중단하는 릴리스 / 버전 번호를 지정해야합니다.

이 솔루션은 현재 테스트되고 Github API v3 에서 작동하는 것으로 알려져 있지만 태그 또는 릴리스 번호를 지정하지 않고 프로그래밍 방식으로 최신 릴리스 를 가져 오고 switch에서 지정한 임의의 이름으로 바이너리를 un-TAR 할 수 있습니다 --one-top-level="pi-ap". 아래 예제에서 사용자 f1linux 와 repo pi-ap 을 자신의 세부 정보와 Bob의 삼촌으로 바꾸 십시오.

curl -L https://api.github.com/repos/f1linux/pi-ap/tarball | tar xzvf - --one-top-level="pi-ap" --strip-components 1


답변

특정 dir


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


답변