Как скачать файл в Linux с помощью wget

6 комментариев
linux-logo

Сегодня поговорим о утилите wget в Linux дистрибутивах.

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

Но сегодня нас будет интересовать только самая простая функция.

Важные Опции wget

  • -nc — не загружать существующие файлы. Удобна для продолжения закачки сайта, прерванной посередине.
  • -nd — не создавать никаких директорий, загружать все файлы в текущую директорию (если директория не задана отдельно).
  • -k — после окончания закачки всех файлов конвертировать все ссылки в них для локального просмотра. При этом ссылки на те файлы, которые не были загружены, будут вести в Интернет.
  • -E — сохранять все HTML-файлы, имеющие неправильное расшинение, с расширением .html (очень ценная опция при загрузке сайтов на ASP, CGI или PHP
  • -r — рекурсивная выгрузка всех файлов в вышележащих и нижележащих папках на сервере.
  • -p — загружать все файлы, необходимые для корректного отображения вэб-страницы. Благодаря этому параметру можно загружать с помощью wget отдельные вэб-страницы целиком, включая звуковые файлы, автоматически проигрываемые при открытии вэб-страницы и фреймы.
  • -N — загружать с сервера только более новые файлы, чем уже сущесвующие.
  • -np — при рекурсивной выгрузке закачивать файлы только из нижележащих директорий по отношению к указанной в URL.
  • -R list — не загружать файлы со следующими расширениями: list.
  • -A list — загружать только файлы со следующими расширениями: list. Параметр полностью аналогичен -R list, но действует наоборот.
  • -l level — при рекурсивной выгрузке сайта загружать на глубину level. Если указано -l 0 или -l inf, то будут загружены все уровни (без ограничений). По умолчанию level=5.
  • -m — создать локальную копию сайта или обновить уже существующую локальную копию сайта, загружая только обновлённые файлы, сохранять листинги FTP-директорий. Этот параметр эквивалентен следующей записи: «-Nrl0 -nr».
  • -o logfile — записывать все выводимые сообщения в logfile, не выводя их на экран. logfile — имя файла или путь к нему.
  • -a logfile — то же, что -o logfile, но сообщения будут дописываться в конец этого файла вместо его перезаписи.
  • -i URLs.txt — загрузить все файлы с адресами, указанными в файле URLs.txt. Если в качестве файла со списком URL’ов нужно использовать вэб-страницу, этот параметр следует использовать в сочетании с опциями ‘--force-html’ и ‘--base=URL’.
  • -X list — не загружать файлы из следующих директорий: list , где list — рзделённый запятыми список путей к директории относительно корневого каталога сервера, где каждый путь начинается с косой черты. Например, команда -X /cgi-bin,/people/~somebody приведёт к тому, что каталог верхнего уровня "cgi-bin" и директория «~somebody» каталога верхнего уровня «people» не будут загружены.
  • Если путь к папке содержит пробелы, его можно заключить в кавычки, а всю последовательность аргументов — в апострофы.
  • Этот параметр можно комбинировать с параметром «-I». Например, чтобы загрузить все файлы из иерархии директорий /pub, исключая /pub/worthless, нужно указать: -I/pub -X/pub/worthless
  • -c — продолжить загрузку файла, который остался недокачанным в предыдущей сессии wget или другой программы. Это будет выполнено, только если сервер поддерживает докачку и размер файла на сервере больше, чем сохранённого на диске. Иначе, при наличии на диске данного файла, закачка произведена не будет. Этот параметр нет необходимости указывать для того, чтобы wget при внезапном обрыве соединения продолжил закачку вместо повторной загрузки с самого начала — в такой ситуации докачка, если её поддерживает сервер, является поведением по умолчанию, а параметр ‘-c’ не оказывает никакого воздействия на поведение wget. Кроме того, следует быть осторожным, сочетая параметры «-c» и «-r», т.к. тогда каждый уже существующий файл будет рассматриваться как потенциально недокачанный, и в случае модификации документа на сервере, приведшей к увеличению его размера вместо закачки новой копии он будет «докачан» т.е. будет загружена конечная часть нового файла, и дописана в конец существующего. При рекурсивной выгрузке этот параметр вступает в противоречие с параметром «-N», что приводит к остановке загрузки или необработке некоторых HTML-файлов (этого не происходит, только если «-N» оказывается отключенным ввиду отсутствия в информации о дате модификации файла на сервере). Кроме того, такая простая докачка без отката может иногда давать повреждённый файл, если производится через «хромой» прокси-сервер, добавляющий в конец файла строку «transfer interrupted». В будущем автор планирует добавить возможность «отката» для решения этой проблемы (такая опция уже есть во FlashGet).
  • -Dlist — ограничить рекурсивную выгрузку следующими доменами: list — разделённый запятыми перечень имён доменов. Этот параметр имеет смысл только в сочетании с «-H«. Может употребляться вместе с обратным по действию параметром «--exclude-domains list«,
  • который действует совершенно аналогично, но наоборот:
  • wget -rH -Dfoo.edu --exclude-domains sunsite.foo.edu http://www.foo.edu/
  • приведёт к загрузке содержимого всех серверов в домене foo.edu, за исключением сайта sunsite.foo.edu и сайтов в поддомене sunsite.foo.edu.

Скачать файл из консоли в Linux

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

wget https://obu4alka.ru/index.php

Во время загрузки утилита введено информацию о загрузке данного файла. Загруженный файл будет находиться в текущей директории из которой вы проводите данную команду.

Иногда нужно скачать скрипт и сразу его выполнить. Это тоже делается достаточно просто. Нам нужно перенаправить содержимое файла на стандартный вывод, а затем передать его нужной утилите:

wget -O - http://www.obu4alka.ru/scripts/myscript.sh | bash

Скрипт будет выполнен сразу после загрузки. Также вы можете указать имя для нового файла с помощью той же опции:

wget -O script.sh https//:obu4alka.ru/scripts/myscript.sh

Из особенностей wget можно отметить, что утилита поддерживает протоколы HTTP, HTTPS и FTP, а для шифрования может использоваться только GnuTLS или OpenSSL.

Если есть вопросы, то пишем в комментариях.

Также можете вступить в Телеграм канал, ВКонтакте или подписаться на Twitter. Ссылки в шапке страницы.
Заранее всем спасибо!!!

RSS

Добавление RSS-ленты на главную страницу этого сайта не поддерживается, так как это может привести к зацикливанию, замедляющему работу вашего сайта. Попробуйте использовать другой блок, например блок Последние записи, для отображения записей сайта.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Русифицируем Ubuntu Server 16.04/18.04/20.04 LTS
linux-logo

Сегодня в статье настроим и русифицируем Ubuntu Server 16.04/18.04/20.04. Чтобы поддерживался русский язык, и перевод системы стал русским

Вносим CAA запись в DNS (bind9)
dns_bind9

Начиная с сентября 2017 года удостоверяющим центрам предписано обязательно проверять CAA-записи в DNS перед генерацией сертификата

Обновления Ubuntu Server 16.04 до 18.04
linux-logo

В этой статье рассмотрим пример обновления Ubuntu Server 16.04 до Ubuntu Server 18.04 Все наши действия нам придется выполнять из Читать

Защита OpenVPN с помощью Fail2Ban
fail2ban-logo

В связи с последними блокировками IP-адресов Роскомнадзором, встала необходимость завести свой собственный VPN сервер. Если VPN у вас ещё не Читать

0 0 голоса
Рейтинг статьи

Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

6 комментариев
новее
старее большинство голосов
Inline Feedbacks
Просмотреть все комментарии
Zeza
Zeza
19.08.2021 07:33

wget http://WebServices/Uploader/Uploader.asmx/OpenDoc?docId=123456
скачивает файл и обзывает его «OpenDoc?docId=123456» и не понятно что за файл, какой формат, плдскажите пжлста, как с этим бороться? как получить его оригинальное наименование?

Zeza
Zeza
Ответить на  webmaster С.
23.08.2021 13:52

Вопрос с наименованием файла решен с помощью --content-disposition.

теперь вопрос — как скачать Заголовки(--save-headers) не внутрь самого файла, а в отдельный?

CepGo
CepGo
25.02.2020 15:37

-nc не помогло. Он перезаписал существующие файлы. Т.е. практически начал с нуля.

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: