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.comQ5. 중단된 지점에서 다운로드를 재개하려면 어떻게 하나요?
때때로 다운로드가 중간에 중단됩니다. 따라서 시간을 절약하고 데이터를 아끼기 위해, 다시 시도할 때 중단된 지점에서 시작되도록 하고 싶을 수 있습니다. curl은 -C 명령줄 옵션을 사용하여 이를 허용합니다.
예를 들어:
curl -C - -O http://releases.ubuntu.com/18.04/ubuntu-18.04-desktop-amd64.iso다음 스크린샷은 curl 명령어가 중단된 후 다운로드를 재개하는 모습을 보여줍니다.
결론
따라서 curl 명령어는 명령줄을 통해 파일을 다운로드하는 것을 좋아하는 경우 유용한 유틸리티임을 알 수 있습니다. 우리는 여기서 표면만 긁어보았으며, 이 도구는 훨씬 더 많은 기능을 제공합니다. 이 튜토리얼에서 논의된 명령줄 옵션을 연습한 후, curl의 매뉴얼 페이지로 가서 더 많은 정보를 배울 수 있습니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.