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

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

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

Как установить wget

Прежде чем вы сможете использовать wget, вам необходимо его установить. Как это сделать, зависит от вашего компьютера:

  • Большинство (если не все) дистрибутивы Linux по умолчанию поставляются с wget. Таким образом, пользователям Linux не нужно ничего делать!
  • Системы macOS не поставляются с wget, но вы можете установить инструменты командной строки с помощью Homebrew. После того, как вы настроили Homebrew, просто запустите brew install wgetв Терминале.
  • У пользователей Windows нет простого доступа к wget в традиционной командной строке, хотя Cygwin предоставляет wget и другие утилиты GNU, а оболочка Bash Ubuntu в Windows 10 также поставляется с wget.

После того, как вы установили wget, вы можете сразу начать использовать его из командной строки. Скачиваем файлы!

Скачать один файл

Начнем с простого. Скопируйте URL-адрес файла, который хотите загрузить, в свой браузер.

Теперь вернитесь в Терминал и введите, wgetа затем вставленный URL. Файл будет загружен, и вы увидите прогресс в реальном времени.

СВЯЗАННЫЕ: Как управлять файлами из терминала Linux: 11 команд, которые вам нужно знать

Обратите внимание, что файл будет загружен в текущую папку вашего Терминала, поэтому вы захотите в cdдругую папку, если хотите, чтобы он был сохранен в другом месте. Если вы не уверены, что это значит, ознакомьтесь с нашим руководством по управлению файлами из командной строки. В статье упоминается Linux, но концепции одинаковы в системах MacOS и Windows, работающих под управлением Bash.

Продолжить незавершенную загрузку

Если по какой-либо причине вы остановили загрузку до ее завершения, не волнуйтесь: wget может продолжить работу с того места, где она была остановлена. Просто используйте эту команду:

wget -c file

Ключевым моментом здесь является то -c, что на языке командной строки это «опция». Эта конкретная опция сообщает wget, что вы хотите продолжить существующую загрузку.

Зеркальное отражение всего веб-сайта

Если вы хотите загрузить весь веб-сайт, wget справится с этой задачей.

wget -m //example.com

По умолчанию это загрузит все на сайт example.com, но вы, вероятно, захотите использовать еще несколько вариантов для пригодного для использования зеркала.

  • --convert-links изменяет ссылки внутри каждой загруженной страницы так, чтобы они указывали друг на друга, а не на Интернет.
  • --page-requisites загружает такие вещи, как таблицы стилей, поэтому страницы будут правильно выглядеть в автономном режиме.
  • --no-parentостанавливает загрузку родительских сайтов wget. Поэтому, если вы хотите загрузить //example.com/subexample, у вас не будет родительской страницы.

Комбинируйте эти варианты по вкусу, и вы получите копию любого веб-сайта, который вы сможете просматривать на своем компьютере.

Обратите внимание, что зеркалирование всего веб-сайта в современном Интернете займет огромное количество места, поэтому ограничьте это небольшими сайтами, если у вас нет почти неограниченного хранилища.

Скачать весь каталог

Если вы просматриваете FTP-сервер и находите всю папку, которую хотите загрузить, просто запустите:

wget -r ftp://example.com/folder

В rэтом случае wget сообщает, что вам нужна рекурсивная загрузка. Вы также можете включить, --noparentесли хотите избежать загрузки папок и файлов выше текущего уровня.

Загрузить список файлов сразу

Если вы не можете найти всю папку с нужными загрузками, wget все равно может помочь. Просто поместите все URL-адреса загрузки в один файл TXT.

затем укажите wget на этот документ с -iопцией. Как это:

wget -i download.txt

Сделайте это, и ваш компьютер загрузит все файлы, перечисленные в текстовом документе, что очень удобно, если вы хотите оставить несколько загрузок на ночь.

Еще несколько приемов

Мы могли бы продолжить: wget предлагает множество вариантов. Но это руководство предназначено только для того, чтобы дать вам отправную точку. Чтобы узнать больше о возможностях wget, введите man wget терминал и прочтите, что будет дальше . Вы многому научитесь.

Сказав это, вот несколько других вариантов, которые я считаю изящными:

  • Если вы хотите, чтобы загрузка выполнялась в фоновом режиме, просто включите эту опцию -b.
  • Если вы хотите, чтобы wget продолжал попытки загрузки даже в случае ошибки 404, используйте эту опцию -t 10. То попытается скачать 10 раз; вы можете использовать любой номер, который вам нравится.
  • Если вы хотите управлять своей пропускной способностью, эта опция  --limit-rate=200kограничит скорость загрузки на уровне 200 КБ / с. Измените номер, чтобы изменить скорость.

Здесь есть чему поучиться. Вы можете загрузить исходный код PHP или настроить автоматический загрузчик, если хотите получить более продвинутый уровень.