Linux Commands

Downloading Files on Linux using the Command Line

In recent years, technology has evolved and grown significantly, highlighting the changes taking place in the digital world. These technological advancements have led to the creation of so many extraordinary tools and softwares that have significantly aided in making our lives easier.

Linux, a Unix based open-source operating system, is one example of such a software that only a few years back, didn’t have the specs to be used in desktops and as a result, was mainly considered for server development. However, with time, it has rapidly evolved, becoming a reliable and powerful operating system, which in turn has led to it gaining the attention of a large number of users.

The Command Line tool provided by Linux is one of its most powerful features that it offers to users and is also what makes it so fascinating and amazing to use. A command line is simply a text-based interface that takes in commands and forwards them to the OS which runs them. It is due to this flexible nature of it that it has gained an edge over the Graphical User Interface (GUI) and as a result, many users have switched to the Command Line for doing various tasks, one of which is the downloading of files.

Hence today we’ll be looking at two different ways on how to download files on Linux using the Command Line tool.

Downloading Files using Wget

One of the most popular command line tools for downloading files from the internet is Wget. Wget is a pretty versatile tool that supports multiple protocols such as HTTP, HTTPS and FTP and allows one to download multiple files and directories. It also provides users with a variety of features ranging from recursive downloading to playing and pausing the downloads as well as limiting its bandwidth.

Moreover, it is cross-platform which gives it quite the edge over many other command line downloaders as well as graphical downloaders.

How to Install Wget?

Wget usually comes pre-installed with most of the Linux Distributions. However, if a user is in possession of a system without Wget being installed, then the user needs to open the command line through either Ubuntu Dash or Ctrl+Alt+T shortcut and enter the following command:

$ sudo apt-get install wget

It is to be noted that the command given above is for only Debian based Linux systems such as Ubuntu. If a user has a Red Hat Linux system such as Fedora, then the user needs to enter the following command into the command line:

$ yum install wget

Features of Wget

As mentioned before, Wget has multiple features incorporated inside of it. The most basic operation that Wget offers to users is downloading files by simply using its URL. This can be done by inputting the following command into the terminal:

$ wget URL

Let us show an example to further clarify this. We will be downloading a simple image in the png format from the internet. See the image below for better understanding:

Wget also allows users to download multiple files from different URLs. This can easily be done by the following command:

$ wget URL1 URL2 URL3

Once again, we can show this using an example. We will be downloading two HTML files from two different websites. For better understanding, please look at the image below:

We can also change the name of the file from its original using the following command:

$ wget -O filename URL


Here filename refers to the name that you want to address the file as. Using this, we can also change the type of the file. This is shown in the image below:

Wget also allows users to recursively download their files which is basically downloading all the files from the website under a single directory. This can easily be done by the following command:

$ wget -r URL

For more information regarding Wget, users can input the following command into the terminal to get access to all the Wget commands that appear to be available:

$ wget --help

Downloading Files using Curl

Curl is another command line tool that can be used to download files from the internet. Unlike Wget, which is command line only, features of Curl are powered by libcurl which is a cross-platform URL transfer library. Curl not only allows downloading of files but can also be used for uploading and exchanging of requests with servers. Curl also has a much larger support range for protocols including the important ones such as HTTP, HTTPS, FTP, SFTP etc. However, Curl does not support recursive downloads which Wget offers.

How to Install Curl?

Similarly, like Wget, Curl comes pre-installed with most of the Linux Distributions. This can simply be checked by running the following command:

$ curl --version

However, if a user is in possession of a system without Curl being installed, then the user needs to open the command line through either Ubuntu Dash or Ctrl+Alt+T shortcut and enter the following command:

$ sudo apt-get install curl

It is to be noted that the command given above is for only Debian based Linux systems such as Ubuntu. If a user has a Red Hat Linux system such as Fedora, then the user needs to enter the following command into the command line:

$ yum install curl

Features of Curl

Just like Wget, Curl has multiple features incorporated inside of it. The most basic is its ability to allow users to download files from a single URL from the internet. This can be done by inputting the following command into the terminal:

$ curl -O URL

For better understanding, we will be downloading a simple image in the png format from the internet just like in the case of Wget.

Curl also allows users to change the filename and the type of the file. This can be done by the following command:

$ curl URL > filename

In the image above, we took a png file originally named pancake1.png and converted it to a zip file with the new name p.zip.

Just like in the case of Wget, Curl allows users to download multiple files using a number of URLs from the internet. This can easily be done by the following command:

$ curl -O URL1 -O URL2 -O URL3

For our example, we will use curl to download a jpg file and a png file from the internet. Results are shown in the image below:


A pretty amazing feature that Curl provides to its users is its ability to monitor the progress of the download of the file. This can be done by the following command:

$ curl -# URL > filename

For more information regarding Curl, users can input the following command into the terminal to get access to all the Curl commands that appear to be available:

$ curl --help

Best Command Line Method to Download Files

Wget and Curl are among the wide range of command line tools that Linux offers for the downloading of files. Both offer a huge set of features that cater to different needs of the users. If users simply want to download files recursively, then Wget would be a good choice. If users are looking to interact with the server or download a file built under a protocol that Wget doesn’t support, then Curl would be a better alternative.

About the author

Zeeman Memon

Hi there! I'm a Software Engineer who loves to write about tech. You can reach out to me on LinkedIn.