- How to download a file from a website via terminal?
- 6 Answers 6
- 2 Ways to Download Files From Linux Terminal
- Download files from Linux terminal using wget command
- Installing wget
- Download a file or webpage using wget
- Download files with a different name using wget
- Download a folder using wget
- Download an entire website using wget
- Bonus Tip: Resume incomplete downloads
- Download files from Linux command line using curl
- Installing curl
- Download files or webpage using curl
- Download files with a different name
- Pause and resume download with curl
- Изучаем команду wget на 12 примерах
- 1. Загрузка одного файла
- 2. Загрузка файла и сохранение его с новым именем
- 3. Ограничение скорости загрузки файлов
- 4. Завершение прерванной загрузки
- 5. Фоновая загрузка файла
- 6. Загрузка нескольких файлов
- 7. Увеличение общего числа попыток загрузки файла
- 8. Загрузка файлов с FTP-сервера
- 9. Создание локальной копии веб-сайта
- 10. Загрузка с сайта только файлов определённого типа
- 11. Пропуск файлов определённого типа
- 12. Загрузка с использованием собственного .log-файла
- Итоги
How to download a file from a website via terminal?
Use wget -O hooray «http://domain.com/directory/4?action=AttachFile&do=get&target=file.tgz» . You can add -c option to resume download if connection was lost while downloading file.
6 Answers 6
wget "http://domain.com/directory/4?action=AttachFile&do=view&target=file.tgz"
to download the file to the current directory.
wget -P /home/omio/Desktop/ "http://thecanadiantestbox.x10.mx/CC.zip"
will download the file to /home/omio/Desktop
wget -O /home/omio/Desktop/NewFileName "http://thecanadiantestbox.x10.mx/CC.zip"
will download the file to /home/omio/Desktop and give it your NewFileName name.
Beat me to the punch. Dang. But yeah, it’s wget [whatever web address] . If you want to choose the location, type cd [local location on your computer.] EXAMPLE: cd /home/omio/Desktop/ | wget http://thecanadiantestbox.x10.mx/CC.zip
@Omio There is no need to run cd . You can just specify output file via -O option. For example: wget -O /home/omio/Desktop/file.tgz «http://domain.com/directory/4?action=AttachFile&do=view&target=file.tgz»
@Sergey Thanks for the clarification. I haven’t had to use wget yet, but I would have to, in the future.
? and & are interpreted by your shell. You need to quote or escape it. Generally, you have a shortcut to paste a quoted or escaped version of the string in the clipboard in your terminal. Be very careful when pasting stuffs inside a terminal.
you can do it by using curl .
curl -O http://domain.com/directory/4?action=AttachFile&do=view&target=file.tgz
The -O saves the file with the same name as in the url rather than dumping the output to stdout
I use axel and wget for downloading from terminal, axel is download accelerator
axel www.example.com/example.zip
wget -c www.example.com/example.zip
for more details type man axel , man wget in terminal
Just to add more flavor to this question, I’d also recommend that you take a look at this:
history -d $((HISTCMD-1)) && echo ‘[PASSWORD]’ | sudo -S shutdown now
You could use this to shutdown your computer after your wget command with a ; perhaps or in a bash script file.
This would mean you don’t have to stay awake at night and monitor until your download as (un)successfully run.
2 Ways to Download Files From Linux Terminal
If you are stuck to the Linux terminal, say on a server, how do you download a file from the terminal?
There is no download command in Linux but there are a couple of Linux commands for downloading file.
In this terminal trick, you’ll learn two ways to download files using the command line in Linux.
I am using Ubuntu here but apart from the installation, the rest of the commands are equally valid for all other Linux distributions.
Download files from Linux terminal using wget command
wget is perhaps the most used command line download manager for Linux and UNIX-like systems. You can download a single file, multiple files, an entire directory, or even an entire website using wget.
wget is non-interactive and can easily work in the background. This means you can easily use it in scripts or even build tools like uGet download manager.
Let’s see how to use wget to download files from terminal.
Installing wget
Most Linux distributions come with wget preinstalled. It is also available in the repository of most distributions and you can easily install it using your distribution’s package manager.
On Ubuntu and Debian based distributions, you can use the apt package manager command:
Download a file or webpage using wget
You just need to provide the URL of the file or webpage. It will download the file with its original name in the directory you are in.
To download multiple files, you’ll have to save their URLs in a text file and provide that text file as input to wget like this:
Download files with a different name using wget
You’ll notice that a webpage is almost always saved as index.html with wget. It will be a good idea to provide custom name to downloaded file.
You can use the -O (uppercase O) option to provide the output filename while downloading.
Download a folder using wget
Suppose you are browsing an FTP server and you need to download an entire directory, you can use the recursive option
wget -r ftp://server-address.com/directory
Download an entire website using wget
Yes, you can totally do that. You can mirror an entire website with wget. By downloading an entire website I mean the entire public facing website structure.
While you can use the mirror option -m directly, it will be a good idea add:
- –convert-links : links are converted so that internal links are pointed to downloaded resource instead of web
- –page-requisites: downloads additional things like style sheets so that the pages look better offline
wget -m --convert-links --page-requisites website_address
Bonus Tip: Resume incomplete downloads
If you aborted the download by pressing C for some reasons, you can resume the previous download with option -c.
Download files from Linux command line using curl
Like wget, curl is also one of the most popular commands to download files in Linux terminal. There are so many ways to use curl extensively but I’ll focus on only the simple downloading here.
Installing curl
Though curl doesn’t come preinstalled, it is available in the official repositories of most distributions. You can use your distribution’s package manager to install it.
To install curl on Ubuntu and other Debian based distributions, use the following command:
Download files or webpage using curl
If you use curl without any option with a URL, it will read the file and print it on the terminal screen.
To download a file using curl command in Linux terminal, you’ll have to use the -O (uppercase O) option:
It is simpler to download multiple files in Linux with curl. You just have to specify multiple URLs:
Keep in mind that curl is not as simple as wget. While wget saves webpages as index.html, curl will complain of remote file not having a name for webpages. You’ll have to save it with a custom name as described in the next section.
Download files with a different name
It could be confusing but to provide a custom name for the downloaded file (instead of the original source name), you’ll have to use -o (lowercase O) option:
Some times, curl wouldn’t just download the file as you expect it to. You’ll have to use option -L (for location) to download it correctly. This is because some times the links redirect to some other link and with option -L, it follows the final link.
Pause and resume download with curl
Like wget, you can also resume a paused download using curl with option -c:
As always, there are multiple ways to do the same thing in Linux. Downloading files from the terminal is no different.
wget and curl are just two of the most popular commands for downloading files in Linux. There are more such command line tools. Terminal based web-browsers like elinks, w3m etc can also be used for downloading files in command line.
Personally, for a simple download, I prefer using wget over curl. It is simpler and less confusing because you may have a difficult time figuring out why curl could not download a file in the expected format.
Your feedback and suggestions are welcome.
Изучаем команду wget на 12 примерах
Все мы иногда качаем файлы из интернета. Если для этого использовать программы с графическим интерфейсом, то всё оказывается предельно просто. Однако, при работе в командной строке Linux дело несколько усложняется. Особенно — для тех, кто не знаком с подходящими инструментами. Один из таких инструментов — чрезвычайно мощная утилита wget, которая подходит для выполнения всех видов загрузок. Предлагаем вашему вниманию двенадцать примеров, разобрав которые, можно освоить основные возможности wget.
1. Загрузка одного файла
Если всё, что нужно — это загрузка одного файла, нам подойдёт следующая конструкция:
$ wget https://downloads.sourceforge.net/project/nagios/nagios-4.x/nagios-4.3.1/nagios-4.3.1.tar.gz?r=&ts=1489637334&use_mirror=excellmedia
После ввода такой команды начнётся скачивание Nagios Core. В ходе этого процесса можно будет видеть данные о загрузке, например — сведения о том, какой объём данных уже загружен, текущую скорость, и то, сколько времени осталось до конца загрузки.
2. Загрузка файла и сохранение его с новым именем
Если мы хотим сохранить загруженный файл под именем, отличающимся от его исходного имени, нам пригодится команда wget с параметром -O :
$ wget -O nagios_latest https://downloads.sourceforge.net/project/nagios/nagios-4.x/nagios-4.3.1/nagios-4.3.1.tar.gz?r=&ts=1489637334&use_mirror=excellmedia
При таком подходе загруженный файл будет сохранён под именем nagios_latest .
3. Ограничение скорости загрузки файлов
При необходимости скорость загрузки файлов с помощью wget можно ограничить. В результате эта операция не будет занимать весь доступный канал передачи данных и не повлияет на другие процессы, связанные с сетью. Сделать это можно, используя параметр —limit-rate и указав ограничение скорости, выраженное в байтах (в виде обычного числа), килобайтах (добавив после числа K ) или мегабайтах ( M ) в секунду:
$ wget ––limit-rate=500K https://downloads.sourceforge.net/project/nagios/nagios-4.x/nagios-4.3.1/nagios-4.3.1.tar.gz?r=&ts=1489637334&use_mirror=excellmedia
Здесь задано ограничение скорости загрузки, равное 500 Кб/с.
4. Завершение прерванной загрузки
Если в ходе загрузки файлов эта операция была прервана, можно возобновить загрузку с помощью параметра -c команды wget :
$ wget –c https://downloads.sourceforge.net/project/nagios/nagios-4.x/nagios-4.3.1/nagios-4.3.1.tar.gz?r=&ts=1489637334&use_mirror=excellmedia
Если этот параметр не использовать, то загрузка недокачанного файла начнётся сначала.
5. Фоновая загрузка файла
Если вы загружаете файл огромного размера и хотите выполнять эту операцию в фоне, сделать это можно, используя параметр -b :
$ wget –b https://downloads.sourceforge.net/project/nagios/nagios-4.x/nagios-4.3.1/nagios-4.3.1.tar.gz?r=&ts=1489637334&use_mirror=excellmedia
6. Загрузка нескольких файлов
Если имеется список URL файлов, которые надо загрузить, но вам не хочется вручную запускать загрузки этих файлов, можно использовать параметр -I . Однако, перед тем, как начинать загрузку, нужно создать файл, содержащий все адреса. Например, сделать это можно такой командой:
В этот файл нужно поместить адреса — по одному в каждой строке. Далее, осталось лишь запустить wget , передав этой утилите только что созданный файл со списком загрузок:
Выполнение этой команды приведёт к поочерёдной загрузке всех файлов из списка.
7. Увеличение общего числа попыток загрузки файла
Для того, чтобы настроить число повторных попыток загрузки файла, можно использовать параметр —tries :
wget ––tries=100 https://downloads.sourceforge.net/project/nagios/nagios-4.x/nagios-4.3.1/nagios-4.3.1.tar.gz?r=&ts=1489637334&use_mirror=excellmedia
8. Загрузка файлов с FTP-сервера
Команда загрузки файла с анонимного FTP-сервера с помощью wget выглядит так:
Если для доступа к файлу требуются имя пользователя и пароль, то команда примет такой вид:
$ wget –-ftp-user=dan ––ftp-password=********* FTP-URL
9. Создание локальной копии веб-сайта
Если нужно загрузить содержимое целого веб-сайта, сделать это можно, воспользовавшись параметром —mirror :
$ wget --mirror -p --convert-links -P /home/dan xyz.com
Обратите внимание на дополнительные параметры командной строки:
- -p : производится загрузка всех файлов, необходимых для корректного отображения HTML-страниц.
- —convert-links : ссылки в документах будут преобразованы для целей локального просмотра сайта.
- -P /home/dan : материалы будут сохранены в папку /home/dan .
10. Загрузка с сайта только файлов определённого типа
Для того, чтобы загрузить с сайта только файлы определённого типа, можно воспользоваться параметрами -r -A :
11. Пропуск файлов определённого типа
Если вы хотите скопировать целый веб-сайт, но при этом вам не нужны файлы определённого типа, отключить их загрузку можно с помощью параметра —reject :
$ wget --reject=png Website_url
12. Загрузка с использованием собственного .log-файла
Для того, чтобы загрузить файл и использовать при этом собственный .log -файл, воспользуйтесь параметром -o и укажите имя файла журнала:
$ wget -o wgetfile.log https://downloads.sourceforge.net/project/nagios/nagios-4.x/nagios-4.3.1/nagios-4.3.1.tar.gz?r=&ts=1489637334&use_mirror=excellmedia
Итоги
Wget — довольно простая в использовании, но весьма полезная утилита Linux. И, на самом деле то, о чём мы рассказали — лишь малая часть того, что она умеет. Надеемся, этот обзор поможет тем, кто не был знаком с wget, оценить эту программу, и, возможно, включить её в свой повседневный арсенал инструментов командной строки.
Уважаемые читатели! Пользуетесь ли вы инструментами командной строки Linux для загрузки файлов? Если да — просим о них рассказать.