Table of Contents
- Install wget in Linux
- Download a File with wget Command
- Download Multiple Files Using wget Command
- Download the File with a Different Name
- Download the File in a Specified Location
- Download Multiple Files From a File
- Resume Uncompleted Download Using wget Command
- Ignore SSL Certificate Check While Downloading
- Set Download Speed Limit
- Download a File From Password Protected FTP Server
- Create a Mirror of Entire Website
- Conclusion
Wget is a Linux command-line utility that downloads files and web pages from the internet. It supports several internet protocols, including HTTP, HTTPS, and FTP, to access and retrieve the files. You can use different options with the wget command to perform various tasks. The wget utility is handy on slower and unstable internet connections. The wget command keeps trying until the entire file has been retrieved in case of a download failure.
Features
- Downloads multiple files at once.
- Define download speed and bandwidth limit.
- Allows resuming a failed download.
- Download complete web and FTP sites.
- Support for SSL/TLS for encrypted downloads.
- Download files through proxies.
In this post, we will show you how to use the wget command to download files in Linux.
Install wget in Linux
By default, the wget package comes pre-installed on all major Linux operating systems. If not installed, you can follow the below steps to install it.
For Debian and Ubuntu operating systems, install wget using the following command:
apt-get install wget -y
For RHEL, CentOS, Rocky Linux, and Fedora operating systems, install wget using the following command:
dnf install wget -y
Also Read
How to Install LFTP to Download and Upload Files in Linux
Download a File with wget Command
The basic syntax to download a file using the wget command is shown below:
wget [option] [URL]
To download a single file, run the following command:
wget https://repo.skype.com/latest/skypeforlinux-64.deb
This will download a file named skypeforlinux-64.deb to your current working directory:
Connecting to get.skype.com (get.skype.com)|52.174.193.75|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://repo.skype.com/latest/skypeforlinux-64.deb [following] --2022-03-16 08:45:16-- https://repo.skype.com/latest/skypeforlinux-64.deb Resolving repo.skype.com (repo.skype.com)... 23.50.252.171, 2405:200:1630:18af::1263, 2405:200:1630:189c::1263 Connecting to repo.skype.com (repo.skype.com)|23.50.252.171|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 140790360 (134M) [application/x-debian-package] Saving to: ‘skypeforlinux-64.deb’ skypeforlinux-64.deb 100%[=================================================================>] 134.27M 2.10MB/s in 64s 2022-03-16 08:46:20 (2.09 MB/s) - ‘skypeforlinux-64.deb’ saved [140790360/140790360]
Download Multiple Files Using wget Command
You can also download multiple files by specifying various URLs with the wget command.
wget http://ftp.gnu.org/gnu/wget/wget-1.11.4.tar.gz https://curl.se/download/curl-7.82.0.tar.gz
This will download multiple files in your current working directory:
HTTP request sent, awaiting response... 200 OK Length: 1475149 (1.4M) [application/x-gzip] Saving to: ‘wget-1.11.4.tar.gz’ wget-1.11.4.tar.gz 100%[=================================================================>] 1.41M 293KB/s in 4.9s 2022-03-16 08:51:01 (293 KB/s) - ‘wget-1.11.4.tar.gz’ saved [1475149/1475149] --2022-03-16 08:51:01-- https://curl.se/download/curl-7.82.0.tar.gz Resolving curl.se (curl.se)... 151.101.2.49, 151.101.66.49, 151.101.130.49, ... Connecting to curl.se (curl.se)|151.101.2.49|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 4106857 (3.9M) [application/x-gzip] Saving to: ‘curl-7.82.0.tar.gz’ curl-7.82.0.tar.gz 100%[=================================================================>] 3.92M 3.26MB/s in 1.2s 2022-03-16 08:51:04 (3.26 MB/s) - ‘curl-7.82.0.tar.gz’ saved [4106857/4106857] FINISHED --2022-03-16 08:51:04-- Total wall clock time: 15s Downloaded: 2 files, 5.3M in 6.1s (891 KB/s)
Download the File with a Different Name
Generally, the wget command will download and save a file with its original name. You can use the -O option with the wget command to save a file with a different name.
wget -O wget.tar.gz http://ftp.gnu.org/gnu/wget/wget-1.11.4.tar.gz
This will download the file and save it with a different name:
Resolving ftp.gnu.org (ftp.gnu.org)... 209.51.188.20, 2001:470:142:3::b Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1475149 (1.4M) [application/x-gzip] Saving to: ‘wget.tar.gz’ wget.tar.gz 100%[=================================================================>] 1.41M 231KB/s in 6.2s 2022-03-16 08:55:27 (231 KB/s) - ‘wget.tar.gz’ saved [1475149/1475149]
Also Read
How to Install and Use Pigz to Compress Files in Linux
Download the File in a Specified Location
The wget command downloads the file in your current working directory by default. You can use the -P option to download the file in a specified directory:
wget -P /tmp/ http://ftp.gnu.org/gnu/wget/wget-1.11.4.tar.gz
Output:
Connecting to ftp.gnu.org (ftp.gnu.org)|209.51.188.20|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1475149 (1.4M) [application/x-gzip] Saving to: ‘/tmp/wget-1.11.4.tar.gz.1’ wget-1.11.4.tar.gz.1 100%[=================================================================>] 1.41M 227KB/s in 6.3s 2022-03-16 08:58:07 (227 KB/s) - ‘/tmp/wget-1.11.4.tar.gz.1’ saved [1475149/1475149]
Download Multiple Files From a File
You can use the -i option to specify a file containing a list of URLs to be downloaded. First, create a file named download-list.txt:
nano download-list.txt
Add all URLs from where you want to download files:
http://ftp.gnu.org/gnu/wget/wget-1.11.4.tar.gz http://www.openssl.org/source/openssl-0.9.8h.tar.gz https://curl.se/download/curl-7.82.0.tar.gz
Save and close the file, then run the wget command by specifying the download-list.txt file as shown below:
wget -i download-list.txt
This will download all files one by one, as shown below:
Length: 1475149 (1.4M) [application/x-gzip] Saving to: ‘wget-1.11.4.tar.gz’ wget-1.11.4.tar.gz 100%[=================================================================>] 1.41M 142KB/s in 10s 2022-03-16 09:06:19 (143 KB/s) - ‘wget-1.11.4.tar.gz’ saved [1475149/1475149] Length: 3439981 (3.3M) [application/x-gzip] Saving to: ‘openssl-0.9.8h.tar.gz’ openssl-0.9.8h.tar.gz 100%[=================================================================>] 3.28M 4.44MB/s in 0.7s 2022-03-16 09:06:21 (4.44 MB/s) - ‘openssl-0.9.8h.tar.gz’ saved [3439981/3439981] Length: 4106857 (3.9M) [application/x-gzip] Saving to: ‘curl-7.82.0.tar.gz’ curl-7.82.0.tar.gz 100%[=================================================================>] 3.92M 4.50MB/s in 0.9s 2022-03-16 09:06:22 (4.50 MB/s) - ‘curl-7.82.0.tar.gz’ saved [4106857/4106857] FINISHED --2022-03-16 09:06:22-- Total wall clock time: 13s Downloaded: 3 files, 8.6M in 12s (755 KB/s)
Resume Uncompleted Download Using wget Command
If you are trying to download a large file and it stops due to a slow or unstable internet connection, you can use the -c option to resume downloading the same file where it left off.
wget -c https://curl.se/download/curl-7.82.0.tar.gz
Output:
--2022-03-16 09:11:11-- https://curl.se/download/curl-7.82.0.tar.gz Resolving curl.se (curl.se)... 151.101.2.49, 151.101.66.49, 151.101.130.49, ... Connecting to curl.se (curl.se)|151.101.2.49|:443... connected. HTTP request sent, awaiting response... 206 Partial Content Length: 4106857 (3.9M), 753031 (735K) remaining [application/x-gzip] Saving to: ‘curl-7.82.0.tar.gz’ curl-7.82.0.tar.gz 100%[+++++++++++++++++++++++++++++++++++++++++++++++++++++============>] 3.92M 4.23MB/s in 0.2s 2022-03-16 09:11:11 (4.23 MB/s) - ‘curl-7.82.0.tar.gz’ saved [4106857/4106857]
Ignore SSL Certificate Check While Downloading
You can use the –no-check-certificate option to ignore SSL certificate checks while downloading files over HTTPS.
wget --no-check-certificate https://curl.se/download/curl-7.82.0.tar.gz
Output:
--2022-03-16 09:14:07-- https://curl.se/download/curl-7.82.0.tar.gz Resolving curl.se (curl.se)... 151.101.2.49, 151.101.66.49, 151.101.130.49, ... Connecting to curl.se (curl.se)|151.101.2.49|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 4106857 (3.9M) [application/x-gzip] Saving to: ‘curl-7.82.0.tar.gz’ curl-7.82.0.tar.gz 100%[=================================================================>] 3.92M 4.40MB/s in 0.9s 2022-03-16 09:14:08 (4.40 MB/s) - ‘curl-7.82.0.tar.gz’ saved [4106857/4106857]
Set Download Speed Limit
The wget command will also allow you to set a speed limit on a slower internet connection. You can use the –limit-rate option to set the speed limit.
For example, to set the speed limit to 10k, run the following command:
wget -c --limit-rate=10k https://curl.se/download/curl-7.82.0.tar.gz
You should see the following output:
--2022-03-16 09:17:36-- https://curl.se/download/curl-7.82.0.tar.gz Resolving curl.se (curl.se)... 151.101.2.49, 151.101.66.49, 151.101.130.49, ... Connecting to curl.se (curl.se)|151.101.2.49|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 4106857 (3.9M) [application/x-gzip] Saving to: ‘curl-7.82.0.tar.gz’ curl-7.82.0.tar.gz 3%[=> ] 159.22K 10.0KB/s eta 6m 26s
Download a File From Password Protected FTP Server
The wget command lets you specify a username and password to download a file from the password-protected FTP server.
You can use the following syntax to download a file from the password-protected FTP server:
wget --ftp-user=username --ftp-password=password ftp://ftp.server.com/filename.tar.gz
Create a Mirror of Entire Website
You can use the -m option to create a complete local copy of the website by downloading all website files, including CSS, JavaScript, and images.
wget -m https://linuxbuz.com
If you want to use the downloaded website for local browsing, you can use some extra options with the wget command:
wget -m -k -p https://linuxbuz.com
Conclusion
In this post, we explained using the wget command with different options to download files from the remote URLs. You can now use the wget command according to your needs. Try it on dedicated servers from Atlantic.Net!