![이 "wget" 명령과 유사하게 수행되는 동등한 "curl" 명령을 어떻게 실행할 수 있습니까?](https://rvso.com/image/1465817/%EC%9D%B4%20%22wget%22%20%EB%AA%85%EB%A0%B9%EA%B3%BC%20%EC%9C%A0%EC%82%AC%ED%95%98%EA%B2%8C%20%EC%88%98%ED%96%89%EB%90%98%EB%8A%94%20%EB%8F%99%EB%93%B1%ED%95%9C%20%22curl%22%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%8B%A4%ED%96%89%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
나는wget
명령:
wget -r --no-parent -nH -nd -q --show-progress --progress=bar:force ftp://ftp.ncdc.noaa.gov/pub/data/swdi/database-csv/v2/
하지만 최신 버전의 wget
. 불행하게도 나는 (darwin14.3.0에 구축된 GNU Wget 1.15)의 이전 버전을 가지고 있는데 wget
업그레이드할 수 없습니다. 특히 wget
--show-progress
인식되지 않는 옵션 입니다 .
이에 상응하는 명령이 있는지 궁금합니다.curl
? curl
내 시스템 의 버전은 7.37.1(x86_64-apple-darwin14.0)입니다.
답변1
하지만 최신 버전의
wget
. 불행하게도 나는 (darwin14.3.0에 구축된 GNU Wget 1.15)의 이전 버전을 가지고 있는데wget
업그레이드할 수 없습니다. 특히wget
--show-progress
인식되지 않는 옵션 입니다 .
curl
작동 방식과 작동 방식에 대해 내가 알고 있는 내용에 따르면 표면적으로 는 wget
동일해 보일 수 있지만 . 이와 같은 작업을 수행하려면 명령을 둘러싸는 멋진 Bash 스크립팅이 필요합니다 .wget
curl
curl
curl
그렇다면 업그레이드할 수 없다는 것은 wget
정확히 무엇을 의미합니까? GNU 도구 이므로 wget
Darwin(BSD 기반)과 함께 설치되지 않으며 소스에서 컴파일되는 경우가 많습니다. 실제로 귀하가 제공한 버전 세부 정보는 해당 버전이 "darwin14.3.0을 기반으로 구축된 GNU Wget 1.15"이기 때문에 어떤 방식으로든 소스에서 명확하게 컴파일된 것입니다. 따라서 해당 버전이 wget
다음과 같은 방법으로 설치되었다면홈브류, Homebrew가 시스템에 있다면 Xcode 및 관련 명령줄 도구/컴파일러도 시스템에 설치되어 있어야 하므로 희망이 있습니다.
wget
이제 이를 알았으니 소스에서 업데이트된 버전(예: 1.16.3) 을 컴파일할 수 있어야 합니다 . Homebrew 설치 버전을 우회하고 홈 디렉터리에서 실행 가능하게 만듭니다. 귀하에게는 이 작업을 수행할 수 있는 권한이 root
없습니다 . sudo
방법은 다음과 같습니다.
wget
소스에서 컴파일 .
먼저 공식 wget
소스 사이트에서 압축된 아카이브를 가져옵니다.
curl -O http://ftp.gnu.org/gnu/wget/wget-1.16.3.tar.gz
다음으로, 다음과 같이 아카이브의 압축을 풉니다.
tar -xzf wget-1.*.tar.gz
이제 압축이 풀린 디렉터리로 이동합니다.
cd wget-1.*
다음 configure
명령을 실행하세요:
./configure --with-ssl=openssl
해당 명령이 실패하면 다음과 같은 값을 configure
추가해야 할 수도 있습니다 --with-libssl-prefix
.
./configure --with-ssl=openssl --with-libssl-prefix=/usr/lib
configure
프로세스가 완료 되면 다음을 실행합니다 make
.
make
정상적으로 실행되면 새로 컴파일된 1.16.3 바이너리 버전을 wget
사용할 준비가 된 것입니다.
wget
홈 디렉터리에서 새로 컴파일된 버전을 실행합니다 .
이제 이 시점에서 대부분의 지침은 시스템에 완전히 설치 sudo make install
하려면 실행해야 한다고 말합니다 . 그러나 / 권한이 wget
없거나 시스템 전체에 설치된 버전을 업그레이드하고 싶지 않은 경우에도 방금 컴파일한 바이너리를 이와 같이 실행할 수 있습니다. 먼저 다음과 같이 소스 디렉터리 에서 돌아가겠습니다 .root
sudo
wget
wget
wget
cd ~/
이제 wget
다음과 같이 명시적으로 컴파일한 1.16.3 바이너리를 실행하여 제대로 작동하는지 확인하세요.
~/wget-1.16.3/src/wget --version
출력은 다음과 같아야 합니다.
GNU Wget 1.16.3 built on darwin13.4.0.
+digest +https +ipv6 -iri +large-file -nls +ntlm +opie -psl +ssl/openssl
Wgetrc:
/usr/local/etc/wgetrc (system)
Compile:
gcc -DHAVE_CONFIG_H -DSYSTEM_WGETRC="/usr/local/etc/wgetrc"
-DLOCALEDIR="/usr/local/share/locale" -I. -I../lib -I../lib
-DNDEBUG
Link:
gcc -DNDEBUG -liconv -lssl -lcrypto -ldl -lz ftp-opie.o openssl.o
http-ntlm.o ../lib/libgnu.a
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://www.gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Originally written by Hrvoje Niksic <[email protected]>.
Please send bug reports and questions to <[email protected]>.
이는 귀하가 현재 사업을 하고 있다는 것을 의미합니다!
wget
홈 디렉터리에서 명령을 실행합니다 .
이제 wget
다음과 같이 질문에 게시된 명령을 실행할 수 있습니다.
~/wget-1.16.3/src/wget -r --no-parent -nH -nd -q --show-progress --progress=bar:force ftp://ftp.ncdc.noaa.gov/pub/data/swdi/database-csv/v2/
그리고 주목할 만한 작은 변화는 많은 wget
옵션에 전체 이름과 단축 약어가 있다는 것입니다. 따라서 명령을 다음과 같이 --no-parent
단축할 수 있습니다 .-np
~/wget-1.16.3/src/wget -r -np -nH -nd -q --show-progress --progress=bar:force ftp://ftp.ncdc.noaa.gov/pub/data/swdi/database-csv/v2/
사용 후 정리.
그리고 방금 컴파일한 1.16.3 항목을 제거하려면 wget
(작업 중인 컴퓨터가 귀하의 것이 아니라고 말했기 때문에) wget
방금 작업한 소스 파일을 다음과 같이 삭제하면 됩니다.
rm wget-1.16.3.tar.gz
rm -rf wget-1.16.3