wget 대신 curl 사용하기

wget 대신 curl 사용하기

웹에 존재하는 파일을 터미널 명령어를 사용해 다운받고자 할 때 사용하는 것이 wget입니다. 하지만 맥(요세미티 기준)에는 기본적으로 설치되어 있지 않죠. 대신 같은 기능을 하는 curl이 존재합니다. wget과 사용법이 조금은 다른 듯 한데요. 사용법을 간단하게 알아보겠습니다.

curl

wget과 curl의 차이

Linux/Unix를 사용해봤다면 wget은 한번쯤은 사용해 본 명령어입니다. 다운로드 리소스의 위치만 알고 있으면 아래와 같이 입력해서 다운로드 받을 수 있죠. 워드프레스 설치 파일을 예로 들어보도록 할께요.

curl이 wget과 같은 기능을 한다고 하여 아래와 같이 입력했더니 파일은 안 받아지고 HTML 텍스트만 응답받습니다.

301 Moved Permanently은 무엇일까요? curl을 wget처럼 사용할 수 있는 방법은 없을까요? 그냥 마음 편히 wget을 설치하여 사용하면 될까요?

curl의 파일 다운로드 옵션

curl 명령어를 사용하여 파일을 다운로드 받고자 한다면 ‘-o'(소문자 오) 또는 ‘-O'(대문자 오) 옵션을 사용해야 합니다. curl은 기본적으로 stdout으로 출력하는 것 같습니다. (여기서 같습니다가 붙는 이유는 제대로 메뉴얼을 정독하지 않았기 때문입니다. 정확한 사용법을 알고 싶다면 메뉴얼을 읽어보세요.) 하지만 여기에 o or O 옵션을 준다면 파일로 출력합니다. 그럼 소문자와 대문자의 차이는 무엇일까요?

소문자의 경우는 파일명을 지정할 수 있습니다. 정확히는 파일명을 지정해야 합니다. 안그러면 인자가 부족해서 님 메뉴얼 읽고 오세요 라는 메세지를 보게 될테니까요.

반면 대문자 O는 리모트 대상의 파일이름을 그대로 사용합니다. 따라서 따로 파일명을 지정해주지 않아도 되지요.

curl의 리다이렉트 따라가기 옵션

그렇다면 301 Moved Permanently은 무엇일까요?

이것은 말그대로 요청한 정보(사이트나 페이지)가 영구적으로 옮겼다는것을 말해줍니다.
예를 들어 aaa.com을 소유했던 사람이 bbb.com으로 사이트 주소를 옮겼을때 301 redirect를 해준다면 크롤러가 aaa.com에 접속했을때 aaa.com에서 인덱스한 내용의 주소가 bbb.com으로 바뀌었다는것을 감지하고 인덱스된 aaa.com의 주소를 자동으로 bbb.com으로 변경시켜 줍니다.

via 301 vs 302 리디렉트(redirect)

검색엔진 최적화는 잘 모르겠고 주소가 리다이렉트 되었을 때 나오는 메세지였네요. 리다이렉트 될 수 밖에 없는 것이 워드프레스 latest.tar.gz 는 가장 최신의 워드프레스 파일을 참조하는 주소일 뿐입니다. 따라서 언제든 저 주소로 접근하면 사용자는 그 시점에 가장 최신 버전의 파일을 받게 되는 것이죠. wget을 사용할 경우 리다이렉트 된 주소까지 쫓아가서 파일을 받아오지만 curl은 그렇지 않나봅니다.

이를 해결해주는 옵션이 -L 입니다. 리다이렉트가 되었다면 그 주소로 가서 정보를 가져오죠.

마치며

결론적으로 curl을 사용하여 wget처럼 사용하고 싶다면 아래와 같이 입력하면 됩니다.

이 밖에도 curl의 기능은 무궁무진한 것 같습니다. 시간나면 조금 더 알아봐야 할 것 같아요.안.할.듯. 혹 curl 명령어에 대해 더 알아야 할 필수 옵션이나 유용한 사용 방법이 있다면 공유해주세요. 행복하세요~

About dezang

애플제품과 구글서비스를 좋아합니다. 블로그에서는 반말사용하며 시크한 척하지만 실제로는 예의바르고 상냥합니다^^. 언젠가는 세상을 바꾸는 개발자가 되고자 합니다. 언젠가는...

댓글 남기기