Содержание статьи

В Linux скачивание файлов напрямую по ссылке часто выполняется через консольные утилиты wget и curl. wget поддерживает дозагрузку и автоматическое восстановление прерванных файлов, а curl позволяет управлять заголовками запросов и сохранять файл под нужным именем.
При работе с wget достаточно указать ссылку на файл: команда автоматически сохранит его в текущей директории. Для массовой загрузки можно использовать файл со списком URL, что экономит время при скачивании десятков и сотен файлов.
curl подходит, если требуется дополнительная авторизация или передача токенов API. Используя параметры -O или -o, можно задавать имя сохраняемого файла и контролировать путь сохранения. При нестабильном соединении команды обеих утилит поддерживают продолжение прерванной загрузки.
Linux позволяет ограничивать скорость скачивания через параметры —limit-rate в wget и —limit-rate в curl, что полезно при работе на медленных каналах или при необходимости не перегружать сеть.
Использование wget для загрузки одного файла

Команда wget позволяет загружать файлы по HTTP, HTTPS и FTP без необходимости открывать браузер. Для скачивания одного файла достаточно выполнить команду:
wget https://example.com/file.zip
Файл будет сохранён в текущей директории под исходным именем. Если требуется указать другое имя или путь, используется параметр -O:
wget -O /home/user/Downloads/custom_name.zip https://example.com/file.zip
Для контроля повторной загрузки или дозагрузки прерванного файла применяют -c. Это позволяет продолжить скачивание с того места, где оно остановилось:
wget -c https://example.com/file.zip
Таблица с полезными параметрами для одиночной загрузки:
| Параметр | Описание |
|---|---|
| -O / —output-document | Сохраняет файл под указанным именем и путём |
| -c / —continue | Продолжает загрузку прерванного файла |
| —limit-rate=100k | Ограничивает скорость загрузки до 100 килобайт/сек |
| —timeout=30 | Устанавливает время ожидания соединения в секундах |
| —no-check-certificate | Пропускает проверку SSL-сертификатов при HTTPS |
Для протоколов FTP можно добавить —user и —password для авторизации, например:
wget —user=username —password=secret ftp://example.com/file.zip
Загрузка нескольких файлов с помощью wget из списка ссылок
Для скачивания множества файлов можно создать текстовый файл со списком URL, по одному на строку. Например, файл urls.txt может содержать:
https://example.com/file1.zip
https://example.com/file2.zip
https://example.com/file3.zip
Для массовой загрузки используется ключ -i:
wget -i urls.txt
Чтобы избежать повторного скачивания уже загруженных файлов, добавляют параметр -nc (—no-clobber):
wget -i urls.txt -nc
Если требуется продолжить прерванные загрузки для каждого файла из списка, применяют комбинацию -c и -i:
wget -c -i urls.txt
Можно задать ограничение скорости для всех файлов сразу, чтобы не перегружать канал:
wget -i urls.txt —limit-rate=200k
Для сохранения файлов в определённую директорию используется -P:
wget -i urls.txt -P /home/user/Downloads
Эти параметры позволяют скачивать десятки и сотни файлов одновременно с минимальными рисками прерывания и конфликтов имён.
Применение curl для скачивания и сохранения с конкретным именем

Для загрузки файла с указанием имени в curl используется ключ -o. Команда сохраняет файл в текущей директории под указанным именем:
curl -o custom_name.zip https://example.com/file.zip
Если нужно сохранить файл в конкретной папке, указывают полный путь:
curl -o /home/user/Downloads/custom_name.zip https://example.com/file.zip
Для получения оригинального имени файла с сервера применяют -O. В этом случае curl сохраняет файл под тем именем, которое указано в URL:
curl -O https://example.com/file.zip
При нестабильном соединении можно включить повторные попытки с помощью —retry и задать паузу между ними через —retry-delay:
curl -O —retry 5 —retry-delay 10 https://example.com/file.zip
Для работы с защищёнными ресурсами используют -u для передачи логина и пароля:
curl -u username:password -o protected_file.zip https://example.com/file.zip
Эти параметры позволяют точно контролировать имя файла, путь сохранения и надёжность скачивания в curl.
Дозагрузка прерванных файлов с wget и curl
В wget для продолжения прерванной загрузки используется ключ -c (—continue). Команда проверяет уже загруженный размер файла и продолжает скачивание с точки остановки:
wget -c https://example.com/file.zip
При загрузке нескольких файлов из списка параметр -c также работает с ключом -i:
wget -c -i urls.txt
В curl аналогичная возможность задаётся через ключ -C —. Символ минус указывает на автоматическое определение точки продолжения:
curl -C — -O https://example.com/file.zip
Для повторных попыток загрузки в случае ошибок соединения в curl добавляют —retry с указанием числа попыток и —retry-delay для паузы между ними:
curl -C — -O —retry 5 —retry-delay 10 https://example.com/file.zip
Использование этих параметров снижает риск повторной загрузки больших файлов и позволяет автоматически восстанавливать прерванные скачивания без ручного контроля.
Скачивание файлов с авторизацией и токенами

Некоторые серверы требуют авторизацию или передачу токенов для скачивания файлов. В Linux это реализуется через wget и curl.
Примеры с wget:
- HTTP Basic Auth: wget —user=username —password=secret https://example.com/file.zip
- Использование токена в заголовке: wget —header=»Authorization: Bearer YOUR_TOKEN» https://example.com/file.zip
- С FTP с логином: wget ftp://example.com/file.zip —ftp-user=username —ftp-password=secret
Примеры с curl:
- HTTP Basic Auth: curl -u username:password -O https://example.com/file.zip
- Передача токена через заголовок: curl -H «Authorization: Bearer YOUR_TOKEN» -O https://example.com/file.zip
- FTP с логином: curl -u username:password -O ftp://example.com/file.zip
Для безопасного хранения токенов и паролей рекомендуется использовать переменные окружения и подставлять их в команды вместо прямого указания в консоли, например:
export TOKEN=your_token_here
curl -H «Authorization: Bearer $TOKEN» -O https://example.com/file.zip
Ограничение скорости и контроль пропускной способности при скачивании

При загрузке больших файлов или множества файлов одновременно важно контролировать скорость, чтобы не перегружать канал и не снижать производительность других приложений.
В wget используется параметр —limit-rate для ограничения скорости загрузки. Формат указания: число с суффиксами k, m или g для килобайт, мегабайт и гигабайт в секунду:
wget —limit-rate=500k -i urls.txt – ограничение скорости до 500 КБ/с при загрузке списка файлов.
Для отдельного файла:
wget —limit-rate=2m https://example.com/file.zip
В curl аналогично используется ключ —limit-rate:
curl —limit-rate 1M -O https://example.com/file.zip – скорость ограничена до 1 МБ/с.
Ограничение скорости помогает:
- Поддерживать стабильное соединение на медленных каналах
- Сохранять сетевые ресурсы при одновременной работе нескольких пользователей
- Избегать прерываний скачивания из-за перегрузки сети
Вопрос-ответ:
Как скачать один файл с помощью wget и задать конкретное имя для сохранения?
Для скачивания одного файла с wget достаточно указать URL, например: wget https://example.com/file.zip. Чтобы сохранить файл под другим именем или в определённой папке, используется ключ -O: wget -O /home/user/Downloads/custom_name.zip https://example.com/file.zip. Это позволяет точно контролировать имя и путь сохранения без изменения содержимого файла.
Можно ли продолжить скачивание файла, если соединение прервалось?
Да, и wget, и curl поддерживают продолжение загрузки. В wget используется -c, например: wget -c https://example.com/file.zip. В curl применяется -C —: curl -C — -O https://example.com/file.zip. Эти команды проверяют уже загруженную часть файла и продолжают загрузку с места остановки, что полезно при больших файлах и нестабильном соединении.
Как загрузить несколько файлов из списка ссылок без повторного скачивания?
Создайте текстовый файл, например urls.txt, где каждая строка содержит ссылку на файл. Для загрузки используется wget -i urls.txt. Чтобы не перезаписывать уже загруженные файлы, добавляют -nc: wget -i urls.txt -nc. Можно также сочетать -c для продолжения прерванных загрузок и -P для указания директории сохранения.
Как скачивать файлы с защищённых ресурсов, где требуется токен или логин с паролем?
Для wget можно использовать HTTP Basic Auth через —user и —password или передавать токен в заголовке: wget —header=»Authorization: Bearer YOUR_TOKEN» https://example.com/file.zip. В curl авторизация выполняется через -u username:password или заголовок токена: curl -H «Authorization: Bearer $TOKEN» -O https://example.com/file.zip. Для безопасности токен или пароль лучше хранить в переменной окружения.
Можно ли ограничить скорость скачивания, чтобы не перегружать сеть?
Да, и wget, и curl позволяют задать ограничение скорости. В wget используется —limit-rate: wget —limit-rate=500k https://example.com/file.zip — ограничение 500 КБ/с. В curl аналогично: curl —limit-rate 1M -O https://example.com/file.zip. Ограничение скорости помогает поддерживать стабильное соединение и позволяет другим приложениям использовать канал без задержек.
Можно ли скачать файл с сайта, который требует авторизацию через токен, используя curl?
Да, curl позволяет скачивать файлы с сайтов, где требуется токен. Для этого используют заголовок Authorization, в котором указывают токен. Например: curl -H «Authorization: Bearer $TOKEN» -O https://example.com/file.zip. Переменную $TOKEN можно заранее задать в системе через export TOKEN=ваш_токен, чтобы не указывать токен прямо в команде. Этот метод работает для HTTP и HTTPS и подходит как для одиночных файлов, так и для скриптов массовой загрузки.
