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

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

, но не могу Что я должен печатать?

33
задан 26 April 2013 в 18:45

8 ответов

Можно использовать:

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://)


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

Консультируйтесь: https://curl.haxx.se/docs/manpage.html#OPTIONS (См.:-O,-J,-L,-o)

Отметьте предупреждение использования ЗАВИХРЕНИЯ с-J опцией:

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

ПРЕДУПРЕЖДЕНИЕ: Осуществите разумное использование этой опции, особенно в Windows. Сервер жулика мог отправить Вам название DLL или другого файла, который мог возможно быть загружен автоматически Windows или некоторым внешним программным обеспечением.

15
ответ дан 26 April 2013 в 18:45

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

0
ответ дан 26 April 2013 в 18:45

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

0
ответ дан 26 April 2013 в 18:45

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

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

0
ответ дан 26 April 2013 в 18:45

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

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

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

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

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

0
ответ дан 26 April 2013 в 18:45

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

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

0
ответ дан 26 April 2013 в 18:45

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

установите axel, используя:

apt-get install axel

, затем загрузите ваш файл по:

axel http://github.com/ziyaddin/xampp/archive/master.zip
0
ответ дан 26 April 2013 в 18:45

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

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

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

0
ответ дан 14 October 2019 в 12:08

Другие вопросы по тегам:

Похожие вопросы: