curl 명령어 · 3 min read · Sep 16, 2025

초보자를 위한 Linux curl 명령어 튜토리얼 (5가지 예제)

curl 명령어는 HTTP, HTTPS, FTP 등 다양한 프로토콜을 사용하여 서버와 데이터를 전송하는 데 사용되는 강력하고 다재다능한 도구입니다. “Client URL”의 약자로, 웹 요청에 일반적으로 사용되며, 사용자가 파일을 다운로드하고, POST 요청을 통해 데이터를 전송하며, 명령줄에서 RESTful API와 직접 상호작용할 수 있게 해줍니다. curl 명령어는 간단한 파일 다운로드부터 복잡한 멀티파트 양식까지 다양한 작업을 처리할 수 있으며, 유연성과 상세한 출력을 제공하는 능력 덕분에 자동화를 위한 스크립트에서 자주 사용되며, Linux 환경에서 필수 유틸리티입니다.

이 튜토리얼에서는 웹에서 파일을 다운로드할 수 있는 curl 명령어에 대해 논의할 것입니다. 이 기사에서 논의된 예제는 Ubuntu 24.04에서 테스트되었습니다.

Linux curl 명령어

curl 명령어는 Linux 명령줄을 통해 데이터를 다운로드하고 업로드할 수 있게 해줍니다. 다음은 그 구문입니다:

curl [options] [URL...]

그리고 이 명령어에 대한 man 페이지의 설명은 다음과 같습니다:

curl은 지원되는 프로토콜(DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET 및 TFTP)을 사용하여 서버로부터 또는 서버로 데이터를 전송하는 도구입니다. 이 명령어는 사용자 상호작용 없이 작동하도록 설계되었습니다.

curl은 프록시 지원, 사용자 인증, FTP 업로드, HTTP POST, SSL 연결, 쿠키, 파일 전송 재개, 메탈링크 등과 같은 유용한 트릭을 제공합니다. 아래에서 볼 수 있듯이, 기능의 수가 당신의 머리를 어지럽힐 것입니다!

curl은 모든 전송 관련 기능을 위해 libcurl에 의해 구동됩니다. 자세한 내용은 libcurl(3)을 참조하십시오.

다음은 curl이 어떻게 작동하는지에 대한 더 나은 아이디어를 제공하는 Q&A 스타일의 예제입니다.

Q1. curl 명령어는 어떻게 작동하나요?

기본 사용법은 상당히 간단합니다 - curl 명령어에 URL을 입력으로 전달하고 출력을 파일로 리디렉션하면 됩니다.

예를 들어:

curl http://releases.ubuntu.com/24.04/ubuntu-24.04-desktop-amd64.iso.torrent > test.torrent

여기서 -o 옵션을 사용할 수도 있습니다.

-o, --output   
표준 출력 대신 에 출력을 씁니다.

우리의 예제로 돌아가서, 데이터가 내 시스템의 ‘test.torrent’ 파일에 다운로드된 동안, 명령줄에는 다음과 같은 출력이 생성되었습니다:

다음은 출력에 표시되는 진행률 미터에 대한 man 페이지의 설명입니다:

curl은 작업 중에 전송된 데이터의 양, 전송 속도 및 남은 예상 시간 등을 나타내는 진행률 미터를 일반적으로 표시합니다.

curl은 기본적으로 이 데이터를 터미널에 표시하므로, curl을 호출하여 작업을 수행하고 데이터를 터미널에 쓰려고 할 때, 진행률 미터를 비활성화합니다. 그렇지 않으면 진행률 미터와 응답 데이터가 혼합되어 출력을 엉망으로 만들기 때문입니다.

HTTP POST 또는 PUT 요청에 대한 진행률 미터가 필요하면, 응답 출력을 파일로 리디렉션해야 합니다. 셸 리디렉션(>) 또는 -o [file] 또는 유사한 방법을 사용하십시오.

FTP 업로드의 경우에는 해당 작업이 터미널에 응답 데이터를 출력하지 않기 때문에 같은 경우가 아닙니다.

정상 미터 대신 진행률 "바"를 선호하는 경우, -#가 당신의 친구입니다.

Q2. curl이 동일한 다운로드 파일 이름을 사용하도록 하려면 어떻게 하나요?

이전 예제에서 보듯이, 다운로드된 파일 이름을 명시적으로 지정해야 했습니다. 그러나 curl이 다운로드되는 파일의 이름을 로컬 파일 이름으로 사용하도록 강제할 수 있습니다. 이는 -O 명령줄 옵션을 사용하여 수행할 수 있습니다.

curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso.torrent

따라서 이 경우, ‘ubuntu-18.04-desktop-amd64.iso.torrent’라는 이름의 파일이 내 시스템의 출력에 생성되었습니다.

Q3. curl을 사용하여 여러 파일을 다운로드하려면 어떻게 하나요?

이것도 복잡하지 않습니다 - 다음과 같이 URL을 전달하면 됩니다:

curl -O [URL1] -O [URL2] -O [URL3] ...

예를 들어:

curl -O http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso.torrent -O http://releases.ubuntu.com/18.04/ubuntu-18.04-live-server-amd64.iso.torrent

위의 명령어가 실행되는 모습을 보십시오:

따라서 두 URL의 다운로드 진행 상황이 출력에 표시된 것을 볼 수 있습니다.

Q4. ‘이동됨’ 문제를 해결하려면 어떻게 하나요?

때때로, curl 명령어에 URL을 전달할 때 “이동됨” 또는 “영구적으로 이동됨”과 같은 오류가 발생합니다. 이는 일반적으로 입력 URL이 다른 URL로 리디렉션될 때 발생합니다. 예를 들어, 웹사이트를 열면 oneplus.com이 열리고, 그것이 귀하의 자국에 대한 URL(예: oneplus.in)으로 리디렉션되므로 다음과 같은 오류가 발생합니다:

curl이 리디렉션을 따르도록 하려면, 대신 -L 명령줄 옵션을 사용하십시오.

curl -L http://www.oneplus.com

Q5. 중단된 지점에서 다운로드를 재개하려면 어떻게 하나요?

때때로 다운로드가 중간에 중단됩니다. 따라서 시간을 절약하고 데이터를 아끼기 위해, 다시 시도할 때 중단된 지점에서 시작되도록 하고 싶을 수 있습니다. curl은 -C 명령줄 옵션을 사용하여 이를 허용합니다.

예를 들어:

curl -C - -O http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso

다음 스크린샷은 curl 명령어가 중단된 후 다운로드를 재개하는 모습을 보여줍니다.

결론

따라서 curl 명령어는 명령줄을 통해 파일을 다운로드하는 것을 좋아하는 경우 유용한 유틸리티임을 알 수 있습니다. 우리는 여기서 표면만 긁어보았으며, 이 도구는 훨씬 더 많은 기능을 제공합니다. 이 튜토리얼에서 논의된 명령줄 옵션을 연습한 후, curl의 매뉴얼 페이지로 가서 더 많은 정보를 배울 수 있습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.