The curl command line utility transfers files from or to the server. It allows the user to upload and download the data or files by utilizing any supported protocols such as HTTP, FTP, POP3, SMTPS, TFTP, and many others. It works without any user interaction. This command solves the query URLs mentioned in the command line.
This guide illustrates the Linux curl command purpose and works with examples. The table of content of this guide is defined here:
- Prerequisites: Install curl Utility
- How Does the curl Command Work in Linux?
- Download a File
- Save the Downloaded File
- Download Resume/Interrupted File
- Show Headers of URL
- Follow the Redirection
- Set the Rate Limit Speed
- Download a URL from FTP Server
Let’s start with the installation of the “curl” utility.
Prerequisites: Install curl Utility
The “curl” command line tool is mostly available in the latest Linux distributions. However, if it is not installed by default, then follow the below-mentioned commands to install it according to the Linux distributions:
For Fedora & CentOS
$ sudo yum install curl
For Ubuntu and Debian Based Systems
Install the “curl” command in the entire Ubuntu system by executing the specified command:
$ sudo apt install curl
As the output displays the “curl” command is already installed having the newest version “7.18.0”.
Tip: Check the installed “curl” version with the help of the “curl –version” command.
How Does the curl Command Work in Linux?
The working of the “curl” command relies on its syntax.
Syntax
$ curl [option] [URL]
The syntax contains the following components:
- curl: This main keyword represents the “curl” command.
- option: Denotes the options or arguments supported by the “curl” command.
- URL: specific URL that needs to be downloaded via the “curl” utility.
Run the “curl –help” command to get its essential options list that is helpful to perform specific tasks:
$ curl --help
The “output” shows the “Usage(syntax)” and “options” of the “curl” utility
As you can see in the “curl –help” page each option has its own functionality. To understand the functionalities of these options, follow the below-mentioned practical examples.
Example 1: Download a File
Simply, the “curl” command displays the URL’s content in the terminal without any argument. For downloading a single file, use the “-O” option of the “curl” command. In this example, the “curl” command downloaded the “asterisk-16-current” file as shown in the screenshot:
$ curl -O https://wordpress.org/latest.zip
Note: The user can also download more than one file at the same time by following the syntax:
$ curl -O https://wordpress.org/latest.zip -O http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
Example 2: Save the Downloaded File
The “-o” option helps to save the particular URL content into the new file with the specific name. To perform this action, type the “curl” command with the “-o” option and the specified filename and URL:
$ curl -o "google" www.google.com
The above “curl” command displays the output in table format having nine columns. This format is known as a “progress meter”. It holds the complete package information in columns “Total”, “Received”, “xfered”, “Average”, “Speed”, and others.
On the other side, the capital “-O” argument saves the downloaded file with its default URL name:
$ curl -O www.google.com
Example 3: Download Resume/Interrupted File
When the downloading of large files is stopped due to some reason, then utilize the “-C” option of the “curl” command. It will download the resumed file from where it stopped:
$ curl -C - https://www.cyberciti.biz/files/sticker/sticker_book.pdf --output output.pdf
The resumed file has been downloaded and saved with the name “output.pdf”.
Example 4: Show Headers of URL
Headers are a sort of indication for metadata or the request sent from the client to the server. The headers contain key values having information like decoding, type content, user information, and much more.
The “-I” option is useful for getting the headers of the mentioned URL:
$ curl -I --http2 https://www.ubuntu.com/
The output only displays the “Ubuntu” headers.
Example 5: Follow the Redirection
By default, the “curl” command does not follow the redirection without any argument. But its “-L” argument tells the “curl” utility to follow any displayed redirects until the utility reaches its final destination.
$ curl -L google.com
The output displays the response redirection of “google.com” with the “-L” argument.
Example 6: Set the Rate Limit Speed
The “–limit-rate” option is used to set the “rate limit”, which is the percentage of speed that the “curl” command will use for downloading. The speed may be in KB, MB, GB, etc.
In this example, “20K” speed is set to download the specified URL:
$ curl --limit-rate 20k https://wordpress.org/latest.zip
In the above output, the column “Average Speed Dload” identifies that the current URL is downloading at the rate “20k”.
Example 7: Download a URL from FTP Server
The “-u” flag helps download the file from the FTP server. For this purpose, use the “-u” flag with the username, password, and the FTP URL:
$ curl -u demo:password -O ftp://test.rebex.net/readme.txt
The output verifies that the “readme.txt” file has been downloaded from the FTP server.
That’s all from the curl command.
Conclusion
Linux offers the “curl” command utility to download or transfer the file from or to the server. It supports a wide range of protocols. The generalized syntax of the “curl” command is “$ curl [option] [URL]”. However, it provides a list of supported options that can be obtained via the “curl –help” command. This guide explains the curl command in detail with various practical examples.