How to use wget to download files, folders, and websites in Linux
How to Download Files from Linux Terminal Using wget and curl
If you are working on a Linux server or a desktop without a graphical user interface, you may need to download files from the internet using the command line. There are many ways to do this, but two of the most popular and versatile tools are wget and curl. In this article, you will learn how to use these commands to download files from various sources and protocols.
download file linux
What are wget and curl?
wget and curl are command line utilities that can transfer data from or to a server using various protocols, such as HTTP, HTTPS, FTP, SFTP, SCP, etc. They can also handle cookies, authentication, redirections, proxies, and other features that are common in web browsing. Both tools are available in most Linux distributions and can be easily installed using the package manager.
Why use wget and curl to download files?
There are many reasons why you may want to use wget or curl to download files from the command line. Some of them are:
You are working on a remote server that does not have a graphical user interface or a web browser.
You want to automate the download process using scripts or cron jobs.
You want to download multiple files at once or an entire website.
You want to resume an interrupted download or check the integrity of a downloaded file.
You want to download a file that requires authentication or special headers.
You want to have more control and flexibility over the download options and parameters.
How to download a file with wget
Basic syntax of wget
The basic syntax of wget is very simple. You just need to provide the URL of the file you want to download. For example:
download file linux terminal
download file linux command line
download file linux curl
download file linux wget
download file linux ssh
download file linux scp
download file linux ftp
download file linux http
download file linux python
download file linux bash
download file linux script
download file linux url
download file linux server
download file linux ubuntu
download file linux centos
download file linux debian
download file linux redhat
download file linux fedora
download file linux mint
download file linux suse
download file linux arch
download file linux zip
download file linux tar
download file linux gzip
download file linux bzip2
download file linux xz
download file linux rar
download file linux 7z
download file linux iso
download file linux img
download file linux pdf
download file linux txt
download file linux csv
download file linux xml
download file linux json
download file linux html
download file linux md5
download file linux sha1
download file linux sha256
download file linux sha512
download file linux gpg
download file linux pgp
download file linux asc
download file linux sig
download file linux torrent
download file linux magnet link
This will download the file with its original name in the current directory. You will see some information about the download progress, such as the file size, transfer speed, and estimated time of completion.
Downloading a file with a different name
If you want to save the downloaded file with a different name, you can use the -O (uppercase O) option followed by the desired filename. For example:
wget -O new_file.tar (
This will save the downloaded file as new_file.tar in the current directory. This is useful when you want to avoid overwriting an existing file or when you want to give a more meaningful name to the downloaded file.
Downloading multiple files at once
If you want to download more than one file at once, you can create a text file that contains the URLs of the files you want to download, one per line. Then, you can use the -i option followed by the name of the text file. For example:
wget -i download_files.txt
This will download all the files listed in <code Downloading a folder or a website
If you want to download a folder or an entire website, you can use the -r option to enable recursive downloading. This will follow all the links and subdirectories in the given URL and download them as well. For example:
wget -r (
This will download the folder and all its contents in the current directory. You can also use the -l option to specify the maximum depth of recursion. For example, -l 2 will download only two levels of subdirectories. You can also use the -p option to download all the files that are necessary to display the web pages, such as images, stylesheets, scripts, etc. For example:
wget -r -p (
This will download the website and all its dependencies in the current directory. You can also use the -k option to convert the links in the downloaded files to make them suitable for local viewing. For example:
wget -r -p -k (
This will download the website and make it ready for offline browsing.
Resuming incomplete downloads
If your download is interrupted or stopped for some reason, you can resume it from where you left off using the -c option. This will check the size of the existing file and continue downloading from there. For example:
wget -c (
This will resume downloading the file if it was partially downloaded before. This is useful when you have a slow or unstable internet connection or when you want to pause and resume your downloads at your convenience.
How to download a file with curl
Basic syntax of curl
The basic syntax of curl is also very simple. You just need to provide the URL of the file you want to download. For example:
This will download the file and display its contents on the standard output (the terminal screen). If you want to save the downloaded file, you need to redirect the output to a file using the > operator. For example:
curl ( > file.tar
This will save the downloaded file as file.tar in the current directory.
Downloading a file with a different name
If you want to save the downloaded file with a different name, you can use the -o (lowercase o) option followed by the desired filename. For example:
curl -o new_file.tar (
This will save the downloaded file as new_file.tar in the current directory.
Downloading multiple files at once
If you want to download more than one file at once, you can provide multiple URLs as arguments to curl. For example:
curl ( ( (
This will download all three files and display their contents on the standard output. If you want to save them with their original names, you can use the -O (uppercase O) option. For example:
curl -O ( -O ( -O (
This will save all three files with their original names in the current directory. Downloading a file with authentication
If you want to download a file that requires authentication, such as a username and password, you can use the -u option followed by the credentials in the format username:password. For example:
curl -u admin:secret (
This will download the file using the given username and password. You can also omit the password and curl will prompt you to enter it interactively. For example:
curl -u admin (
This will ask you to enter the password for the user admin.
Downloading a file with progress bar
If you want to see a progress bar while downloading a file, you can use the -# option. This will display a series of hashes that indicate the percentage of completion. For example:
curl -# (
This will show something like this:
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 100M 100 100M 0 0 5.0M 0 0:00:20 0:00:20 --:--:-- 5.1M
This is useful when you want to monitor the download progress and speed.
Summary of the main points
In this article, you learned how to use wget and curl to download files from Linux terminal using various options and parameters. You learned how to download files with different names, multiple files at once, folders or websites, files with authentication, and files with progress bars. You also learned how to resume incomplete downloads and check the integrity of downloaded files.
Comparison of wget and curl
Both wget and curl are powerful and versatile tools that can handle most of the common download scenarios. However, they have some differences and advantages over each other. Here are some of them: