Часто возникает необходимость при отсутствии графического интерфейса (например при настройке удаленного сервера) скачать файл на диск. К тому же бывают ситуации, когда нет времени (или просто влом) читать километровый мануал только для того, чтобы скачать архив. Поэтому в данной статье приведу несколько простых примеров использования популярной консольной «качалки» — Wget.
К слову сказать, после того как открыл для себя эту утилиту, часто использую ее в качестве альтернативы графическим менеджерам закачек, т.к. Wget оказался быстрее, удобнее и имеет ряд полезных возможностей, которых нигде больше нет.
Практически во всех дистрибутивах Wget установлен по умолчанию, но если это не так, то:
$ apt-get install wget
Что бы просто скачать файл, в качестве аргумента указываем http или ftp ссылку на него:
$ wget http://somedomain.com/somefile.tar
или с FTP:
$ wget ftp://somedomain.com/somefile.tar
где «http://somedomain.com/somefile.tar» — прямая ссылка на файл, который нужно скачать.
Во Wget, как и в любой продвинутой «интернет-качалке», есть возможность докачки. Для этого используется параметр -c или —continue :
$ wget --continue http://somedomain.com/somefile.tar
при обрыве закачки, для продолжения, в папке с недокачаным файлом пишем:
$ wget http://somedomain.com/somefile.tar
или опять с докачкой:
$ wget --continue http://somedomain.com/somefile.tar
Бывает надобность выкачать несколько десятков (или сотен) файлов. Один из способов — указать Wget-у в качестве аргумента текстовый документ, или HTML-страницу, содержащие прямые ссылки на файлы, которые нужно скачать. Для этого используется опция -i или —input-file :
$ wget -i /path/to/list
или
$ wget --input-file=/path/to/list
Чтобы задать шаблон файлов, которые стоит закачивать или игнорировать, удобно использовать опции -A —accept и -R —reject, указывая в качестве аргументов к ним список шаблонов, разделяемых запятой. Например, что бы при закачке списка файлов игнорировать файлы с расширениями exe и avi, воспользуемся командой:
$ wget --reject *.exe, *.avi --input-file=/path/to/list
Следует заметить, что во всех предыдущих примерах закачка будет производиться в текущий каталог. Для указания произвольного каталога следует использовать опцию -P или —directory-prefix :
$ wget --directory-prefix=/download/directory http://somedomain.com/somefile.tar
Так как Wget использует канал интернета «по полной программе», иногда бывает полезно ограничить скорость закачки, дабы не мешать работе других интернет-приложений. В этом поможет опция —limit-rate, в качестве аргумента для которой укажем скорость в килобайтах:
$ wget --limit-rate=120k http://somedomain.com/somefile.tar
Вышеперечисленные опции можно комбинировать в зависимости от потребностей.
Рассмотрим другой интересный вариант применения Wget — скачивание сайтов. Можно просто сделать зеркальную копию сайта, используя опцию -m или —mirror :
$ wget -m http://www.somedomain.com/
в этом случае сохраняется архитектура абсолютных ссылок.
Также возможен вариант создания копии сайта для локального просмотра, в которой каждая ссылка указывает на соответствующий локальный файл. Для этого используем следующий набор опций:
$ wget -k -r -l0 -np --page-requisites http://www.somedomain.com/
кратко о каждой опции:
-k —convert-links — конвертирует абсолютные ссылки в локальные
-r —recursive — рекурсивная загрузка, т.е. все вложенные ссылки и страницы будут закачены
-l —level — уровень вложения ссылок 0 — бесконечно (по умолчанию — 5)
-np —no-parent — не подниматься выше уровня начальной ссылки
-p —page-requisites — загружать все необходимое для корректного отображения страниц (картинки, css, JavaScript и т.п.)
Это далеко не полный список возможных вариантов использования данной утилиты. Я описал лишь самые элементарные примеры, чтобы вкратце показать возможности и универсальность такого мощного инструмента как Wget.
Ознакомиться с полным руководством по Wget можно здесь(Eng.) или здесь(Рус.).