Если вы работаете в терминале 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 вы можете столкнуться с трудностями при попытке понять, почему он не может скачать файл в ожидаемом формате