먼저, curl 은 커맨드 라인에서 URL 형태의 리소스를 요청/응답할 수 있는 도구다.

전체 매뉴얼은 커맨드 라인에서 `man curl` 을 호출해 볼 수 있고,
curl 사이트의 문서 페이지(http://curl.haxx.se/docs/manpage.html)에서도 확인할 수 있다.


아래는 몇 가지 옵션을 사용한 유용한 예제이다.

1. 응답을 파일에 쓰기

  $ curl http://example.com/resource > foo.txt

옵션 없이 호출하는 curl 커맨드는 표준 출력으로 응답을 출력하는데,
위와 같이 출력을 리다이렉트해서 파일에 쓸 수 있다.


2. 파일명으로 저장하기

  $ curl -o foo.txt http://example.com/foo.txt

-o 옵션으로 리소스의 파일명을 지정해 다운로드할 수 있다.

  $ curl -O http://example.com/foo.txt

-O 옵션을 사용하는 경우, 리소스의 파일명을 그대로 사용한다.


3. 여러 파일 다운로드 받기

  $ curl -O http://example.com/foo[0-9].txt

위 코드는, foo0.txt 부터 foo9.txt 파일을 다운로드 받는다.

  $ curl -O http://example.com/foo-[a-z][0-9].txt

[]는 여러 번 조합할 수 있고, 위 코드는 foo-a0.txt 부터 foo-z9.txt 까지의 파일을 다운로드 받는다.

  $ curl -O http://example.com/{foo,bar,baz}.txt

중괄호({})를 써서 위와 같이 호출할 수도 있고, foo.txt, bar.txt, baz.txt 를 다운로드 받는다.


4. for 문으로 여러 파일 다운로드 받기

  $ files="foo bar baz"
  $ for name in files; do
       curl -O "http://example.com/${name}.txt"
     done

싱글 라인으로 호출하는 경우, 가끔 제대로 다운로드 받아지지 않는 경우가 있는 것 같다.
왜인지 정확히 살펴보진 않았지만, 위와 같이 for 구문으로 호출하는 방법으로 우회할 수 있다.



덧)
리눅스 기반에서는 curl 대신, wget 이 설치되어 있고, 사용 방법은 대체로 비슷하다.


+ Recent posts