웹페이지 혹은 웹에서 다운로드를 명령행에서 다운받을 때
wget 또는 curl 명령을 사용합니다.
(과거에는 wget 을 더 애용했습니다. 그냥 단순 url 내용을 가져올 요량으로요)
wget이나 curl을 사용하는데 가장 큰 차이점은 Recurring입니다. wget은 되는 반면 curl은 안됩니다. 따라서 curl은, 주로, 단일 혹은 3개 이하의 대용량(2GB) 이하의 파일을 다운 받을 때 유용하게 쓰입니다.
둘다 지원하는 내용
- FTP, HTTP, HTTPS 프로토콜을 이용하여 명령행으로 컨텐츠 다운로드
- 스크립트 등을 이용하여 자동으로 작업 가능
- 오픈소스 및 프리소프트웨어
- 90년대 프로젝트 시작
CURL의 특징
- libcurl 이용 : 크로스 플랫폼의 아주 많이 사용하는 라이브러리
- Pipes : stdin 또는 stdoout의 pipe을 이용하는 전통적인 unix 스타일의 방식도 지원
- Return code : 문서화 되어 있는 한개 이상의 다양한 결과 코드를 리턴
- Single shot : 단일 URL의 컨텐츠를 가져옴
- 더 많은 프로토콜 지원 : FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS,
FILE, POP3, IMAP, SMTP, RTMP, RTSP 등의 프로토콜 지원 (wget은 HTTP, HTTPS, FTP 지원)
- Portable : UNIX 뿐만 아니라 OS/400, TPF 등과 같은 플랫폼까지도 지원
- SSL 라이브러리 : SSL 지원
- 다양한 HTTP 인증 방법 지원 : HTTP Proxy 환경에서 사용 가능
- 양방향 : wget이 일반 HTTP POST만 지원하는데 반해 업로드와 보내는 방법 지원
- HTTP multipart/form-data : HTTP "upload" 뿐만 아니라 HTTP 자동화 등에 사용 가능
- 압축 : gzip 압축 및 해지 지원
Wget 특징
- 명령행으로만 존재. (별도의 라이브러리 지원 불가. 따라서 python 모듈 등이 없음)
- Recursive! : curl과 차별되는 기능으로서 리커시브하게 컨텐츠를 가져올 수 있음.
- 오래됨 : 1995년에 시작된 반면, curl은 1997년에 시작됨
- curl에 비하여 개발이 덜 활발함.
- HTTP 1.0 : HTTP 1.1을 아직 지원하지 않는다고 하는군요. (마지막 갱신 시점이 2011/01/24 입니다)
- GPL : Wget은 GPL v3이고 curl은 MIT 라이센스 입니다.
- GNU : GNU 프로젝트 중에 속해있고 모든 카피라이트는 FSF에 있습니다.
결론적으로 wget보다 curl이 기능이 더 많다는 이야기네요.
사용예
다운로드 속도를 제어 (throttle download speed)
이 옵션은 curl, wget 둘 다 동일하게 지원. 아래는 100 Kb/sec 으로 제한하는 방법.
$ curl --limit-rate 100K
$ wget --limit-rate=100k
파일 일부분 다운로드 (partial download)
HTTP header에 'Range' 를 넣음. curl에서 --header 옵션으로 header값을 추가할 수 있음.
아래는 http://abc.com/aaa.txt 에서 앞부분 50k byte 정도만 다운로드 받아 aaa.5k.txt 로 저장하는 방법.
$ curl --header "Range: bytes=0-50000" -o aaa.5k.txt http://abc.com/aaa
정확한 주소값 다운로드 curl -O [URL]
다운로드 시 output 파일명 지정 curl -o [shortname] [URL]
다중 파일 다운 curl -O [URL 1] [URL 2] [URL 3]
Authentication curl -u user:pass -O [URL] |
또한, scp나 ftp를 이용하면 쉽게 파일 교환을 할 수 있습니다.
*curl 공식페이지
*wget 공식페이지
GNU Wget
www.gnu.org
공통점
'IT > Linux' 카테고리의 다른 글
Library 경로 설정 (0) | 2020.09.25 |
---|---|
동적 링크 라이브러리, ldconfig (0) | 2020.09.25 |
ls -al, 파일 정보 확인 (0) | 2020.09.23 |
find 파일 찾기 (0) | 2020.09.23 |
debian, ubuntu (0) | 2020.09.23 |