Скачивание файлов по ссылке в Linux

Как скачать файл по ссылке linux

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

Как скачать файл по ссылке linux

В Linux скачивание файлов напрямую по ссылке часто выполняется через консольные утилиты wget и curl. wget поддерживает дозагрузку и автоматическое восстановление прерванных файлов, а curl позволяет управлять заголовками запросов и сохранять файл под нужным именем.

При работе с wget достаточно указать ссылку на файл: команда автоматически сохранит его в текущей директории. Для массовой загрузки можно использовать файл со списком URL, что экономит время при скачивании десятков и сотен файлов.

curl подходит, если требуется дополнительная авторизация или передача токенов API. Используя параметры -O или -o, можно задавать имя сохраняемого файла и контролировать путь сохранения. При нестабильном соединении команды обеих утилит поддерживают продолжение прерванной загрузки.

Linux позволяет ограничивать скорость скачивания через параметры —limit-rate в wget и —limit-rate в curl, что полезно при работе на медленных каналах или при необходимости не перегружать сеть.

Использование wget для загрузки одного файла

Использование 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 для скачивания и сохранения с конкретным именем

Для загрузки файла с указанием имени в 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 и подходит как для одиночных файлов, так и для скриптов массовой загрузки.

Ссылка на основную публикацию