wget в Linux: практическое руководство
TL;DR
Wget — это простая и надёжная командная утилита для загрузки файлов по HTTP, HTTPS и FTP. В статье показаны базовые и продвинутые приёмы: одиночная загрузка, пакетная загрузка (-i), указание места (-P), переименование (-O), добор прерванной загрузки (-c), ограничение скорости (–limit-rate) и фоновая загрузка (-b). Также приведены советы по безопасности, альтернативы и проверочные сценарии.

Wget — это консольная утилита для загрузки данных из сети. Коротко: она скачивает файлы по URL и умеет возобновлять загрузки, работать в фоне и ограничивать скорость.
Что такое wget и зачем он нужен
Wget — свободная команда для неинтерактивной загрузки файлов по HTTP(S) и FTP. Применяется для автоматизации загрузок, зеркалирования сайтов и восстановления прерванных загрузок. Простая команда и параметры делают её удобной для скриптов и cron-задач.
Важно: wget не исполняет JavaScript и не рендерит страницы; он оперирует на уровне протоколов передачи.
Быстрая справка по параметрам (кратко)
- -i FILE — взять список URL из файла.
- -P DIRECTORY — сохранить файлы в указанную директорию.
- -O FILE — записать вывод в указанный файл (переименование).
- -c — продолжить прерванную загрузку.
- –limit-rate RATE — ограничить скорость (например, 300K или 300KБ/с).
- -b — запустить в фоне и писать лог в wget-log.
Загрузка одного файла
Это самый простой сценарий: у вас есть прямая ссылка, и нужно скачать файл.
wget https://download.aircrack-ng.org/aircrack-ng-1.7.tar.gz
После завершения вы увидите файл в текущем каталоге. Проверьте с помощью:
ls -lПакетная загрузка из списка URL
Если у вас много ссылок, сохраните их в текстовый файл, по одной ссылке в строке, и используйте ключ -i.
- Создайте файл со списком URL, например my_pdfs:
vim my_pdfs- Запустите загрузку:
wget -i my_pdfs

Проверка загруженных файлов:
ls -l
Сохранение в нужную директорию
Чтобы указать каталог для сохранения, используйте -P:
wget -P /path/to/dir https://download.aircrack-ng.org/aircrack-ng-1.7.tar.gzНапример, создать папку Myfile и скачать туда:
wget -P Myfile https://download.aircrack-ng.org/aircrack-ng-1.7.tar.gz
Если указываете относительный путь, он интерпретируется от текущей рабочей директории; для абсолютного пути укажите полный путь.
Переименование файла при загрузке
Ключ -O позволяет задать имя сохраняемого файла и одновременно изменить место сохранения:
wget -O oParameter/aircrack https://download.aircrack-ng.org/aircrack-ng-1.7.tar.gz
Если нужно только переименовать файл, не указывая папку, используйте -O с относительным именем:
wget -O myfilename https://download.aircrack-ng.org/aircrack-ng-1.7.tar.gz
Возобновление прерванных загрузок
Для больших файлов прерывания — обычное дело. Воспользуйтесь -c, чтобы продолжить загрузку с места остановки:
wget -c https://download.aircrack-ng.org/aircrack-ng-1.7.tar.gzПример работы: создайте папку Resume, начните загрузку и прервите (Ctrl+Z). Затем выполните команду с -c и процесс продолжится с последнего байта.


Это экономит трафик и время при больших файлах.
Ограничение скорости загрузки
Чтобы не загружать весь канал, ограничьте скорость с помощью –limit-rate. Пример:
wget --limit-rate 300K https://download.aircrack-ng.org/aircrack-ng-1.7.tar.gzЗдесь 300K обычно означает ~300 КБ/с (килобайт в секунду). Можно указывать суффиксы: K, M.

Фоновая загрузка
Запустите загрузку в фоне с -b. Wget создаст файл wget-log в рабочем каталоге, где записывает статус загрузки.
wget -b https://download.aircrack-ng.org/aircrack-ng-1.7.tar.gzПроверяйте прогресс, читая wget-log:
tail -f wget-log
Когда wget не подходит (примеры и ограничения)
- Сайты, которые требуют выполнения JavaScript (динамическая загрузка контента) — wget не рендерит JS.
- Сложная аутентификация с CSRF/динамическими токенами — может требоваться браузерная автоматизация или cookie-менеджмент.
- Загрузка из облачных сервисов с ограничениями или семантикой (например, некоторые CDNs) — могут потребоваться специальные параметры или обходы.
- Загрузка множественных ресурсов с учётом зависимости (например, зеркалирование сайта с корректной структурой ссылок) — возможно, придётся использовать дополнительные опции (–mirror, –convert-links).
Альтернативы и когда их использовать
- curl — гибче для отправки HTTP-запросов, удобен для API и потоковой передачи; не всегда удобен для возобновления загрузки по умолчанию.
- aria2 — лучше для многопоточных загрузок и ускорения за счёт сегментирования файла; удобен для массовых загрузок и торрент/metalinks.
- wget + скрипты/cron — хорош для простых автоматизаций.
- GUI-менеджеры загрузок — удобны пользователям, которым не нравится терминал.
Выбор: для простоты и скриптинга — wget; для сложных HTTP-сценариев и API — curl; для максимальной скорости — aria2.
Ментальные модели и эвристики при работе с загрузками
- Идем от простого к сложному: сначала попробуйте прямой URL, затем добавляйте параметры.
- Требование idempotence: повторный запуск команды должен приводить к тому же результату или корректно возобновляться (-c).
- Безопасность прежде всего: проверяйте источник и целостность (контрольные суммы).
- Логирование: для фоновых/пакетных загрузок всегда сохраняйте логи и проверяйте их.
Мини-методология: план массовых загрузок
- Подготовьте список URL и проверьте доступность (curl -I или wget –spider).
- Организуйте папки приёмники и права доступа.
- Настройте ограничение скорости (–limit-rate) и параллельность (если используете aria2).
- Запускайте в фоне (-b) и логируйте прогресс.
- После загрузки проверяйте целостность: размер, контрольную сумму (sha256sum), дату модификации.
- Автоматизируйте повторные попытки с экспоненциальной задержкой при ошибках.
Критерии приёмки (как проверить успешную загрузку)
- Файл существует и его размер совпадает с ожидаемым (ls -l).
- Контрольная сумма совпадает с эталонной (sha256sum файл).
- Нет сообщений об ошибках в wget-log.
- При возобновлении загрузка стартует с момента остановки (-c) и завершается корректно.
Роль‑ориентированный чеклист
- Начинающий пользователь:
- Убедиться, что URL прямой и доступен.
- Скачивать в домашнюю папку или временную.
- Проверять ls -l и sha256sum.
- Системный администратор:
- Использовать -P для организации хранилища.
- Лимитировать скорость и ставить в cron при необходимости.
- Логировать wget-log и настраивать ротацию логов.
- Разработчик/автоматизатор:
- Интегрировать wget в скрипты с обработкой ошибок.
- Использовать –spider для проверки URL перед скачиванием.
Шпаргалка: полезные команды
# Одиночная загрузка
wget https://example.com/file.tar.gz
# Из файла со списком URL
wget -i urls.txt
# Сохранить в указанную директорию
wget -P /var/downloads https://example.com/file.tar.gz
# Сохранить с другим именем
wget -O newname.tar.gz https://example.com/file.tar.gz
# Продолжить прерванную загрузку
wget -c https://example.com/file.tar.gz
# Ограничить скорость (300K ~ 300 КБ/с)
wget --limit-rate 300K https://example.com/file.tar.gz
# Запустить в фоне
wget -b https://example.com/file.tar.gzТестовые сценарии и контроль качества
- Тест 1: скачать небольшой файл и сравнить размер с ожидаемым.
- Тест 2: прервать загрузку на 30% и проверить, что wget -c продолжает её.
- Тест 3: пакетная загрузка из файла со 100 ссылками, проверить наличие всех файлов и логов.
- Тест 4: ограничение скорости — измерить фактическую пропускную способность и убедиться, что она не превышает установленную.
Безопасность и приватность при загрузке
- Проверяйте источник: официальные сайты, подписанные релизы, HTTPS.
- Сравнивайте контрольные суммы и подписи PGP, если доступны.
- Будьте осторожны с прямыми ссылками из непроверенных источников — они могут содержать вредоносные файлы.
- Для приватных URL используйте безопасное хранение токенов/куки и ограничения доступа к скриптам.
Краткое сравнение: wget vs curl vs aria2
- wget: прост в использовании, удобен для массовых загрузок, умеет возобновлять загрузки и работать в фоне.
- curl: лучше для API, более гибок в HTTP-сценариях, потоковая обработка данных.
- aria2: многопоточные скачивания, повышенная скорость через сегментацию, поддержка metalinks и BitTorrent.
Короткое объявление (100–200 слов)
Wget — незаменимый инструмент для тех, кто работает в терминале и хочет быстро управлять загрузками в GNU/Linux. Оно позволяет скачивать одиночные файлы, массово загружать по списку URL, сохранять файлы в нужные директории, переименовывать их на лету и возобновлять прерванные загрузки. Wget поддерживает фоновую работу и ограничение скорости, что делает его удобным для автоматизированных задач и скриптов. В этой статье приведены практические примеры команд, советы по безопасности, тестовые сценарии и альтернативные подходы (curl, aria2). После прочтения вы сможете уверенно использовать wget в повседневных задачах: от простой загрузки до настройки стабильного процесса массового скачивания.
Итог
Wget — лёгкий в освоении и мощный инструмент для управления загрузками из сети. Он хорошо подходит для автоматизации, фоновых задач и восстановления прерванных загрузок. Если вам нужно больше гибкости с HTTP или многопоточностью — смотрите curl и aria2. Всегда проверяйте источники и контрольные суммы загружаемых файлов.
Важно: осторожно относитесь к неизвестным ссылкам и используйте проверенные источники.
Похожие материалы
Как разделить меш в Blender
Как увеличить изображение без потери качества
Как создать влог на iPhone — полное руководство
Как отразить экран на телевизор — все способы
Бесконечная прокрутка в Vue 3 — useInfiniteScroll