curl 명령으로 ZIP 파일 다운로드


답변:



20

curl 대신 wget을 사용해보십시오. wget http://github.com/ziyaddin/xampp/archive/master.zip


1
downvoter가 설명 할 수 있습니까? 아니면 다른 포스터입니까?
don.joey

4
wget대신 설명 할 수 curl있습니까?
Jorge Bucaran

1
적은 명령 라인 (당신이 걱정하는 경우) - 이는 적은 옵션을 의미하지만 가장 큰 차이점은 wget을 지원 재귀로 다운로드
란 Davidovitz

이유를 모르지만으로 unzip다운로드 한 파일을 발행하는 중에 오류가 발생하여 curl제대로 작동했습니다.wget
Dinei

15

당신이 사용할 수있는:

curl https://github.com/ziyaddin/xampp/archive/master.zip -O -J -L

다음으로 저장 : xampp-cli-master.zip

  • -L리디렉션이 발견 된 경우 사용합니다 .
  • 사용 -O(원격 파일 이름에 대한 master.zip)
  • 원격 헤더 파일 이름 ( ) 을 허용 하려면 -J(와 함께 사용 )-Oxampp-cli-master.zip


또는 -o자신의 파일 이름을 만드는 데 사용하십시오.

curl https://github.com/ziyaddin/xampp/archive/master.zip -L -o MyFilename.zip

다음으로 저장 : MyFilename.zip

참고 : (GitHub는 SSL 사용을 지원합니다 https://)


당신은 또한 사용할 수있는 curlrc 설정 파일을 또는 CURL 명령을 사용하여 별명을 curl -O -L허용하기 debootstrap은 wget과 비슷한 작업을 할 수 있습니다.

문의 : https://curl.haxx.se/docs/manpage.html#OPTIONS ( -O , -J , -L , -o 참조 )

-J 옵션과 함께 CURL 사용에 대한 경고에 유의하십시오.

제공된 파일 이름에서 %-시퀀스 (아직)를 해독하려는 시도가 없으므로이 옵션은 예기치 않은 파일 이름을 제공 할 수 있습니다.

경고 : 특히 Windows에서이 옵션을 신중하게 사용하십시오. 악성 서버는 Windows 또는 타사 소프트웨어에 의해 자동으로로드 될 수있는 DLL 또는 기타 파일의 이름을 보낼 수 있습니다.


5

파일을 다운로드하려면 wget [option]... [URL]...대신 사용하십시오.

옵션에 대한 자세한 내용을 보려면 터미널에 입력하십시오. man wget

당신을 위해 :

wget http://github.com/ziyaddin/xampp/archive/master.zip

.zip 파일은 현재 디렉토리에 저장됩니다.


1
wgetover의 사용의 장점을 설명하는 것이 도움이 될 것 입니다 curl. 둘 사이의 차이점을 궁금해하는 사람 은 여기를 참조하십시오 .
Jorge Bucaran

@JorgeBucaran 나는 curl또한 wget사소한 역할에 기여한 저자의 글을 읽었습니다 . (내 한 번 작은 프로젝트를 기반으로) 한 눈부신 생략은 wget과 컬보다 빠른 10 배이다 (<이초 12 대 초)에서 일출과 일몰 시간을 검색https://www.timeanddate.com
WinEunuuchs2Unix

따라서 때로는 wget을 사용하고 파일이 직접 제공되지 않지만 대신 URL이 서비스에게 파일을 찾아서 제공 할 위치를 알려 주면 결국 다운로드는 html입니다. 대신 일부 파일에는 curl이 더 좋습니다.
Zloy Smiertniy

3

를 사용하여 GitHub (또는 리디렉션을 수행하는 다른 사이트)에서 파일을 다운로드하려면 (리디렉션 따르기)를 curl통과해야 -L하므로 다음을 사용하십시오.

curl -L http://github.com/ziyaddin/xampp/archive/master.zip -o xampp.zip


1

"curl -LOk"는 안전하지 않은 프로토콜 (-k)을 사용하고 SSL 인증서 검사를 비활성화하며 (인증서와 일치하지 않는 잘못된 경로로 인해 실패 함) 원격 서버에서 제안한 파일 이름 (-O)을 사용하여 출력 파일을 만듭니다. (또한 안전하지 않은). 내 생각에 서버는 URL 의이 부적합 부분을 전달하지 않기 위해 필요한 경우 로컬 리디렉션 별칭을 만들도록 구성해야합니다. 그러나 리디렉션은 HTTP 리디렉션 (HTTP 오류 30x) 만 사용하여 이루어지며, 이로 인해 기본적으로이 보안되지 않은 리디렉션을 따르지 않는 문제가 발생하고 옵션 (-k)은이 보안 검사를 비활성화합니다. 따라서 HTTP 리디렉션 (영구적으로 이동)을 사용하는 대신 서버의 파일 시스템에 내부 링크를 추가하십시오. URL이 실제로 파일 시스템간에 직접 액세스 할 수없는 다른 물리적 서버에서 호스팅되기 때문에 이것이 필요한 경우 클라이언트가 리디렉션없이 올바른 이름을 직접 쿼리 할 수 ​​있도록이 호스트에 다른 DNS 이름을 사용해야합니다. 그런 다음 웹 페이지를 수정하십시오 (웹 서버 로그를 사용하여 HTTP 30x 리디렉션이 반환되는 위치와 확인 및 업데이트해야하는 웹 페이지를 확인할 수 있음). 클라이언트가 안전하지 않은 / 확인되지 않은 프로토콜을 사용하도록하는 것은 좋은 옵션이 아닙니다.

따라서 이것은 웹 서버에서 구성이 매우 잘못되는 문제입니다. 관리자에게 문의하여 문제를 해결하십시오.


0

Axel 도 사용할 수 있습니다 . axel은 가벼운 명령 줄 다운로드 가속기입니다. 지원 HTTP, HTTPS, FTPFTPS프로토콜. 그것의 좋고 빠른 대안.

사용 axel하여 설치 :

apt-get install axel

다음을 통해 파일을 다운로드하십시오.

axel http://github.com/ziyaddin/xampp/archive/master.zip

0

옵션을 사용하여 경로 -L재 지정을 따르십시오 . 옵션 을 사용 --output하여 zip 파일의 경로와 이름을 지정할 수도 있습니다 . 예를 들면 다음과 같습니다.

sudo curl -L https://github.com/CISOfy/lynis/archive/master.zip --output /etc/lynis.zip

참고 : 대상 폴더에 쓸 수있는 권한이없는 경우 sudo를 사용하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.