Что использовать для скачивания файлов в Linux терминале?

Table of Contents

Если вы работаете в терминале Linux, например на сервере, как скачать файл через терминал?

В Linux нет отдельной команды «download», но есть несколько команд для загрузки файлов

В этом трюке для терминала вы узнаете два способа скачивания файлов с помощью командной строки в Linux

Я использую Ubuntu, но за исключением установки, остальные команды одинаково работают во всех дистрибутивах Linux

Скачивание файлов в терминале Linux с помощью команды wget

wget — пожалуй, самый используемый консольный менеджер загрузок для Linux и UNIX-подобных систем. Вы можете скачать один файл, несколько файлов, целую директорию или даже весь веб-сайт с помощью wget.

Wget работает в фоновом режиме и не требует интерактивности. Это означает, что вы можете легко использовать его в скриптах или даже в таких программах, как менеджер загрузок uGet

Давайте посмотрим, как использовать wget для загрузки файлов из терминала

Установка wget

Большинство дистрибутивов Linux поставляются с предустановленным wget. Он также доступен в репозиториях большинства дистрибутивов, и вы можете легко установить его с помощью менеджера пакетов

В дистрибутивах на основе Ubuntu и Debian используйте команду менеджера пакетов apt:

sudo apt install wget

Скачивание файла или веб-страницы с помощью wget

Вам нужно просто указать URL файла или страницы. Он скачает файл с оригинальным именем в текущую директорию

wget URL

Чтобы скачать несколько файлов, нужно сохранить их URL-адреса в текстовом файле и передать его wget:

wget -i файл_со_списком.txt

Скачивание файлов с другим именем с помощью wget

Вы заметите, что веб-страницы почти всегда сохраняются как index.html в wget. Лучше указать собственное имя для скачиваемого файла

Вы можете использовать опцию -O (заглавная O), чтобы задать имя выходного файла при загрузке:

wget -O имя_файла URL

Скачивание папки с помощью wget

Предположим, вы просматриваете FTP-сервер и вам нужно скачать целую директорию, вы можете использовать рекурсивную опцию -r:

wget -r ftp://адрес_сервера.com/директория

Скачивание всего веб-сайта с помощью wget

Да, вы вполне можете это сделать. Вы можете создать зеркало всего сайта с помощью wget. Под «всем сайтом» я имею в виду всю публичную структуру сайта

Хотя вы можете использовать опцию зеркалирования -m напрямую, будет хорошей идеей добавить:

  • --convert-links — ссылки преобразуются так, чтобы внутренние ссылки указывали на загруженные ресурсы, а не на веб.
  • --page-requisites — загружает дополнительные ресурсы, такие как таблицы стилей, чтобы страницы лучше выглядели офлайн.
wget -m --convert-links --page-requisites адрес_сайта

Бонусный совет: Продолжение прерванных загрузок

Если вы прервали загрузку, нажав C, вы можете возобновить её с помощью опции -c:

wget -c URL

Скачивание файлов из командной строки Linux с помощью curl

Как и wget, curl — одна из самых популярных команд для загрузки файлов в терминале Linux. Существует множество способов использования curl, но здесь я сосредоточусь только на простом скачивании

Установка curl

Хотя curl не предустановлен, он доступен в официальных репозиториях большинства дистрибутивов. Вы можете использовать менеджер пакетов вашего дистрибутива для его установки

Чтобы установить curl в Ubuntu и других дистрибутивах на основе Debian, используйте команду:

sudo apt install curl

Скачивание файлов или веб-страниц с помощью curl

Если вы используете curl без опций с URL, он прочитает файл и выведет его на экран терминала

Чтобы скачать файл с помощью команды curl в терминале Linux, вам нужно использовать опцию -O (заглавная O):

curl -O URL

Скачивать несколько файлов в Linux с помощью curl проще. Вам просто нужно указать несколько URL-адресов:

curl -O URL1 URL2 URL3

Имейте в виду, что curl не так прост, как wget. В то время как wget сохраняет веб-страницы как index.html, curl будет жаловаться, что удаленный файл (веб-страница) не имеет имени. Вам придется сохранять его с пользовательским именем, как описано в следующем разделе

Скачивание файлов с другим именем

Это может сбивать с толку, но чтобы задать собственное имя для скачиваемого файла (вместо оригинального имени источника), вам нужно использовать опцию -o (строчная o):

curl -o имя_файла URL

Иногда curl не скачивает файл так, как вы ожидаете. Вам может понадобиться использовать опцию -L (для location — следование редиректам), чтобы скачать его правильно. Это связано с тем, что иногда ссылки перенаправляют на другие адреса, и с опцией -L curl следует по конечной ссылке

Приостановка и возобновление загрузки с помощью curl

Как и в wget, вы также можете возобновить приостановленную загрузку с помощью curl, используя опцию -C:

curl -C - URL

Заключение

Как всегда, в Linux есть несколько способов сделать одно и то же. Скачивание файлов из терминала — не исключение

wget и curl — это лишь две самые популярные команды для загрузки файлов в Linux. Существуют и другие подобные консольные инструменты. Текстовые веб-браузеры, такие как elinks, w3m и другие, также можно использовать для загрузки файлов в командной строке

Лично для простой загрузки я предпочитаю использовать wget, а не curl. Он проще и менее запутан, потому что с curl вы можете столкнуться с трудностями при попытке понять, почему он не может скачать файл в ожидаемом формате