Загрузите ZIP-файл с помощью команды curl

Как я могу загрузить ZIP-файл с помощью команды curl? Я пытался curl -sO, но произошла ошибка. Я хочу загрузить zip-файл с адреса:http://github.com/ziyaddin/xampp/archive/master.zip

но не могу. Что я должен ввести?

Я использовал curl -LO и это сработало нормально. wget тоже работает.

Попробуйте wget вместо curl: wget http://github.com/ziyaddin/xampp/archive/master.zip

Вы можете использовать:

curl https://github.com/ziyaddin/xampp/archive/master.zip -O -J -L

Сохраняет как: xampp-cli-master.zip

  • использовать -L в случае, если будет найден редирект.
  • использовать -O для удаленных имен файлов (master.zip)
  • использовать -J (используйте с -O), чтобы разрешить удаленное имя файла заголовка (xampp-cli-master.zip)


Или использовать -o чтобы создать свое собственное имя файла:

curl https://github.com/ziyaddin/xampp/archive/master.zip -L -o MyFilename.zip

Сохраняет как: MyFilename.zip

Примечание: (GitHub поддерживает использование SSL https://)


Вы также могли бы использовать curlrc конфигурационный файл или псевдоним команды CURL для использования curl -O -L чтобы позволить ему работать аналогично WGET.

Советоваться: https://curl.haxx.se/docs/manpage.html#OPTIONS (См.: , - Джей, - Я, )

Обратите внимание на предупреждение об использовании CURL с опцией -J:

В предоставленном имени файла нет попыток декодирования %-последовательностей (пока), поэтому этот параметр может предоставить вам довольно неожиданные имена файлов.

предупреждение: Разумно используйте эту опцию, особенно в Windows. Мошеннический сервер может отправить вам имя библиотеки DLL или другого файла, который, возможно, может быть автоматически загружен Windows или каким-либо сторонним программным обеспечением.

Если вы хотите загрузить файл, используйте wget [option]... [URL]... вместо.

Для получения дополнительной информации о параметрах просто введите это в свой терминал: man wget

Для вашей цели:

wget http://github.com/ziyaddin/xampp/archive/master.zip

Обратите внимание, что zip-файл будет сохранен в текущем каталоге, в котором вы находитесь.

Для загрузки файлов с GitHub (или любого другого сайта, который делает перенаправления) с помощью curl, вы должны пройти -L (Следуйте перенаправлениям), поэтому используйте:

curl -L http://github.com/ziyaddin/xampp/archive/master.zip -o xampp.zip

"curl -LOk" делает это с использованием небезопасных протоколов (-k), отключая проверки SSL-сертификата (которые завершаются неудачей из-за неправильного пути, не соответствующего сертификату), и создает выходной файл, используя имя файла (-O), предложенное с удаленного сервера (также небезопасно).На мой взгляд, сервер лучше настроить на создание локальных псевдонимов перенаправления там, где это необходимо, чтобы избежать необходимости передавать эту несоответствующую часть URL-адреса. Но перенаправление выполняется только с использованием перенаправления HTTP (ошибка HTTP 30x), что вызывает проблемы с curl, который не следует (по умолчанию) за этим (небезопасным) перенаправлением, а опция (-k) отключает эту проверку безопасности.Поэтому вместо использования HTTP-редиректов (перенесенных навсегда), пожалуйста, добавьте какую-нибудь внутреннюю ссылку в файловую систему сервера. Если это необходимо, потому что URL-адрес фактически размещен на другом физическом сервере без прямого доступа между их файловыми системами, вам следует использовать другое DNS-имя для этого хоста, чтобы клиенты запрашивали правильное имя напрямую, без какого-либо перенаправления.Затем исправьте свои веб-страницы (вы можете использовать журналы своего веб-сервера, чтобы увидеть, куда возвращаются перенаправления HTTP 30x и какие веб-страницы, возможно, потребуется проверить и обновить).Принуждение клиентов к использованию незащищенных / непроверенных протоколов не является хорошим вариантом.

Так что это определенно проблема очень плохой конфигурации на веб-сервере: попробуйте связаться с их администратором, чтобы исправить это.

что ж, вы можете использовать Аксель также. axel - это легкий ускоритель загрузки из командной строки. он поддерживает HTTP, HTTPS, FTP и FTPS протоколы. это хорошая и более быстрая альтернатива.

устанавливать axel с помощью :

apt-get install axel

затем загрузите свой файл с помощью:

axel http://github.com/ziyaddin/xampp/archive/master.zip

Используйте опцию -L чтобы следить за перенаправлениями, вы также можете использовать --output возможность указать путь и имя к zip-файлу. Например:

sudo curl -L https://github.com/CISOfy/lynis/archive/master.zip --output /etc/lynis.zip

Примечание: Используйте sudo, если у вас нет прав на запись в целевую папку.

Что это за сообщение об ошибке?