Wget: как скачивать файлы в GNU/Linux из консоли

Wget — это утилита для скачивания файлов из сети прямо в терминале. Если у вас есть прямая ссылка на файл, вы можете загрузить его без браузера и дополнительных программ. Команда проста: она принимает параметры и работает в автоматическом режиме, что делает её удобной для сценариев, скриптов и фоновых задач.
В этом руководстве собраны практические примеры использования wget, объяснения параметров и дополнительные подсказки, которые помогут работать с загрузками безопасно и эффективно.
Основные примеры
Ниже — самые востребованные сценарии применения wget. Для всех примеров предполагается, что вы выполняете команды в терминале на GNU/Linux и имеете базовые права доступа к файловой системе.
1. Скачивание одного файла
Это самый простой сценарий: у вас есть прямая ссылка, и вы хотите скачать файл в текущую директорию.
wget https://download.aircrack-ng.org/aircrack-ng-1.7.tar.gzПосле выполнения можно проверить файл командой:
ls -l2. Пакетная загрузка из списка (-i)
Если у вас есть много ссылок, сохраните их по одной на строку в текстовый файл (например, my_pdfs), затем используйте флаг -i.
vim my_pdfs
# Вставьте ссылки по одной в каждой строке
wget -i my_pdfsПосле загрузки снова можно проверить содержимое:
ls -l3. Указать папку для загрузки (-P)
Чтобы поместить файл в определённую директорию, используйте -P и путь к папке. Путь может быть относительным или абсолютным.
wget -P Myfile https://download.aircrack-ng.org/aircrack-ng-1.7.tar.gzЕсли папки не существует, создайте её заранее или используйте mkdir -p Myfile.
4. Сохранить под другим именем (-O)
Флаг -O позволяет задать имя файла (и путь) явно. Это полезно, если URL не содержит информативного имени или вы хотите переименовать файл сразу при загрузке.
wget -O oParameter/aircrack https://download.aircrack-ng.org/aircrack-ng-1.7.tar.gzЕсли вы укажете только имя без пути, файл появится в текущей директории с новым именем:
wget -O myfilename https://download.aircrack-ng.org/aircrack-ng-1.7.tar.gz5. Возобновление прерванных загрузок (-c)
При скачивании больших файлов связь может прерваться. Флаг -c (continue) позволит докачать файл с момента остановки, если сервер поддерживает дозапросы.
wget -c https://download.aircrack-ng.org/aircrack-ng-1.7.tar.gzПошаговый пример: создайте папку Resume, начните загрузку, прервите процесс (Ctrl+Z или прерывание соединения) и повторно выполните wget -c.
Этот режим экономит время и трафик при загрузке больших файлов.
6. Ограничение скорости загрузки (–limit-rate)
Чтобы не занимать весь доступный канал, можно ограничить скорость загрузки. Пример ограничит скорость до 300 КБ/с.
wget --limit-rate=300K https://download.aircrack-ng.org/aircrack-ng-1.7.tar.gzВы можете указывать K для килобайт, M для мегабайт и т. п. Например, 1M = 1 мегабайт в секунду.
7. Фоновая загрузка (-b)
Флаг -b позволяет запустить загрузку в фоне. Результат логируется в файл wget-log в той же директории.
wget -b https://download.aircrack-ng.org/aircrack-ng-1.7.tar.gz
# Просмотреть лог
tail -f wget-logПродвинутые приёмы и параметры
Wget поддерживает множество параметров, которые полезны при автоматизации и нестандартных задачах.
- Рекурсивная загрузка сайтов: -r (рекурсивно), –no-parent (не подниматься выше текущей директории), -l (глубина). Используется для зеркалирования сайтов, но применяйте осторожно и уважайте robots.txt.
wget -r -np -l 2 https://example.com/path/- Зеркалирование: -m (mirror) сочетает ряд опций для создания локальной копии сайта.
wget -m https://example.com/- Авторизация: передача имени и пароля для HTTP Basic Auth через –user и –password (будьте осторожны, пароль может попасть в историю команд).
wget --user=username --password='secret' https://example.com/private/file.zip- Заголовки и user-agent: –header и –user-agent пригодятся при эмуляции запросов браузера.
wget --user-agent="Mozilla/5.0 (X11)" --header="Accept: text/html" https://example.comПрокси: wget уважает переменные окружения http_proxy/https_proxy; можно указать прокси в ~/.wgetrc.
Количество повторов и таймауты: –tries и –timeout для управления повторными попытками.
wget --tries=5 --timeout=30 https://example.com/largefile.iso- Таймстемпинг: -N скачивает файл только если на сервере более новая версия. Удобно при регулярных обновлениях.
wget -N https://example.com/data.csvСправочник часто используемых флагов (шпаргалка)
| Ключ | Описание |
|---|---|
| -i <файл> | Пакетная загрузка: читать URL-адреса из файла |
| -P <путь> | Сохранить в указанную директорию |
| -O <файл> | Сохранить под заданным именем |
| -c | Возобновить прерванную загрузку |
| –limit-rate=SIZE | Ограничить скорость (K, M) |
| -b | Фоновая загрузка |
| -r | Рекурсивная загрузка |
| -m | Зеркалирование сайта |
| –user, –password | HTTP аутентификация |
| -N | Сравнение по времени (timestamp) |
Критерии приёмки
Чтобы считать задачу «скачать файл» выполненной, проверьте:
- Файл существует в указанной директории.
- Размер файла совпадает с ожидаемым (или больше нуля при неизвестном размере).
- Контрольные суммы совпадают, если известна контрольная сумма (md5/sha256).
- При фоновой загрузке лог wget-log не содержит ошибок (или содержит сообщение об успешном завершении).
Примеры команд проверки контрольной суммы:
sha256sum ./aircrack-ng-1.7.tar.gzЧек-листы по ролям
Администратор:
- Проверить права на директорию назначения.
- Использовать абсолютные пути в скриптах.
- Логировать результаты загрузок и ошибки.
Разработчик:
- Добавить повторные попытки и таймауты в CI-скрипты.
- Убедиться, что пароли не попадают в историю команд.
Обычный пользователь:
- Использовать -P или -O для удобного управления файлами.
- Ограничивать скорость при параллельной работе в сети.
Безопасность и правовые замечания
- Всегда скачивайте ПО с доверенных источников. Сторонние зеркала могут содержать вредоносный код.
- Не передавайте пароли в командной строке в открытом виде в многопользовательской системе.
- Проверяйте цифровые подписи и контрольные суммы, когда они доступны.
- Уважайте правила сайта и robots.txt при рекурсивных загрузках и зеркалировании.
Когда wget не подходит (ограничения и альтернативы)
- Если нужен интерактивный браузерный рендеринг (JS), wget не подойдёт; используйте headless-браузеры или инструменты типа puppeteer/selenium.
- Для сложной аутентификации OAuth лучше применять специализированные клиенты или писать скрипты с API.
- Для распределённых или параллельных загрузок больших наборов файлов можно рассмотреть aria2 (поддерживает многопоточность) или curl в комбинации с xargs/parallel.
Тесты и приёмочные сценарии
Примеры тест-кейсов для автоматизации проверки загрузки:
Сценарий: скачать небольшой файл и проверить присутствие.
- Команда: wget -P /tmp https://example.com/small.txt
- Критерий: файл /tmp/small.txt существует и имеет размер > 0 байт.
Сценарий: прервать загрузку и возобновить.
- Команда: wget -P /tmp https://example.com/large.iso (прервать в середине)
- Повтор: wget -c -P /tmp https://example.com/large.iso
- Критерий: итоговый файл совпадает по размеру с серверной версией.
Сценарий: ограничение скорости.
- Команда: wget –limit-rate=50K https://example.com/medium.iso
- Критерий: скорость в логах не превышает указанного значения.
Шпаргалка по безопасности и приватности
- В многопользовательской среде не храните пароли в командной строке; используйте .netrc или ключи.
- Для конфиденциальных загрузок используйте защищённые соединения (HTTPS) и проверяйте сертификаты.
- При работе с персональными данными соблюдайте применимые правила конфиденциальности и законодательства.
Часто задаваемые вопросы
Как возобновить прерванную загрузку?
Используйте флаг -c: wget -c URL. Важно, чтобы сервер поддерживал дозапросы (HTTP Range). Если сервер не поддерживает, -c не поможет.
Можно ли скачивать сайты целиком?
Да, с осторожностью: используйте -r (рекурсивно) и -np (не подниматься выше), либо -m для зеркалирования. Следите за robots.txt и не нагружайте сервер слишком агрессивными запросами.
Как ограничить скорость загрузки?
Флаг –limit-rate=SIZE, например –limit-rate=300K для 300 КБ/с или –limit-rate=1M для 1 МБ/с.
Резюме
- Wget — мощный инструмент для автоматизированных загрузок: одиночные файлы, пакетные загрузки, возобновление, фоновые задачи и др.
- Для больших и критичных загрузок используйте возобновление (-c), проверяйте контрольные суммы и логируйте результаты.
- При рекурсивных загрузках и зеркалировании уважайте правила сайтов и ограничивайте скорость, чтобы не создавать лишней нагрузки.
Важно: всегда проверяйте источник скачиваемых файлов и применяйте базовые меры безопасности.
Похожие материалы
Статистика в Excel: проценты, среднее, t‑тест
Управление шрифтами на Mac — Font Book
Не получается войти в ChatGPT: причины и как исправить
YouTube Kids — как сделать YouTube безопасным для детей
Как написать книгу: лучшие ресурсы