curl 명령으로 ZIP 파일을 어떻게 다운로드합니까? 시도 curl -sO
했지만 오류가 발생했습니다. 주소에서 zip 파일을 다운로드하고 싶습니다 :
http://github.com/ziyaddin/xampp/archive/master.zip
그러나 할 수 없습니다. 무엇을 입력해야합니까?
curl 명령으로 ZIP 파일을 어떻게 다운로드합니까? 시도 curl -sO
했지만 오류가 발생했습니다. 주소에서 zip 파일을 다운로드하고 싶습니다 :
http://github.com/ziyaddin/xampp/archive/master.zip
그러나 할 수 없습니다. 무엇을 입력해야합니까?
답변:
curl 대신 wget을 사용해보십시오. wget http://github.com/ziyaddin/xampp/archive/master.zip
wget
대신 설명 할 수 curl
있습니까?
unzip
다운로드 한 파일을 발행하는 중에 오류가 발생하여 curl
제대로 작동했습니다.wget
당신이 사용할 수있는:
curl https://github.com/ziyaddin/xampp/archive/master.zip -O -J -L
다음으로 저장 : xampp-cli-master.zip
-L
리디렉션이 발견 된 경우 사용합니다 .-O
(원격 파일 이름에 대한 master.zip
)-J
(와 함께 사용 )-O
xampp-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 또는 기타 파일의 이름을 보낼 수 있습니다.
파일을 다운로드하려면 wget [option]... [URL]...
대신 사용하십시오.
옵션에 대한 자세한 내용을 보려면 터미널에 입력하십시오. man wget
당신을 위해 :
wget http://github.com/ziyaddin/xampp/archive/master.zip
.zip 파일은 현재 디렉토리에 저장됩니다.
curl
또한 wget
사소한 역할에 기여한 저자의 글을 읽었습니다 . (내 한 번 작은 프로젝트를 기반으로) 한 눈부신 생략은 wget과 컬보다 빠른 10 배이다 (<이초 12 대 초)에서 일출과 일몰 시간을 검색https://www.timeanddate.com
를 사용하여 GitHub (또는 리디렉션을 수행하는 다른 사이트)에서 파일을 다운로드하려면 (리디렉션 따르기)를 curl
통과해야 -L
하므로 다음을 사용하십시오.
curl -L http://github.com/ziyaddin/xampp/archive/master.zip -o xampp.zip
"curl -LOk"는 안전하지 않은 프로토콜 (-k)을 사용하고 SSL 인증서 검사를 비활성화하며 (인증서와 일치하지 않는 잘못된 경로로 인해 실패 함) 원격 서버에서 제안한 파일 이름 (-O)을 사용하여 출력 파일을 만듭니다. (또한 안전하지 않은). 내 생각에 서버는 URL 의이 부적합 부분을 전달하지 않기 위해 필요한 경우 로컬 리디렉션 별칭을 만들도록 구성해야합니다. 그러나 리디렉션은 HTTP 리디렉션 (HTTP 오류 30x) 만 사용하여 이루어지며, 이로 인해 기본적으로이 보안되지 않은 리디렉션을 따르지 않는 문제가 발생하고 옵션 (-k)은이 보안 검사를 비활성화합니다. 따라서 HTTP 리디렉션 (영구적으로 이동)을 사용하는 대신 서버의 파일 시스템에 내부 링크를 추가하십시오. URL이 실제로 파일 시스템간에 직접 액세스 할 수없는 다른 물리적 서버에서 호스팅되기 때문에 이것이 필요한 경우 클라이언트가 리디렉션없이 올바른 이름을 직접 쿼리 할 수 있도록이 호스트에 다른 DNS 이름을 사용해야합니다. 그런 다음 웹 페이지를 수정하십시오 (웹 서버 로그를 사용하여 HTTP 30x 리디렉션이 반환되는 위치와 확인 및 업데이트해야하는 웹 페이지를 확인할 수 있음). 클라이언트가 안전하지 않은 / 확인되지 않은 프로토콜을 사용하도록하는 것은 좋은 옵션이 아닙니다.
따라서 이것은 웹 서버에서 구성이 매우 잘못되는 문제입니다. 관리자에게 문의하여 문제를 해결하십시오.