Télécharger le fichier ZIP avec la commande curl

Réponses:

36

J'ai utilisé curl -LOet cela a bien fonctionné. wgetfonctionne aussi.

Ziyaddin Sadigov
la source
Travaillé pour moi sous Windows 7
fedmich
20

Essayez wget au lieu de curl: wget http://github.com/ziyaddin/xampp/archive/master.zip

don.joey
la source
1
Le votant inférieur peut-il expliquer? Ou est l'autre affiche?
don.joey
4
Pourriez-vous expliquer pourquoi wgetau lieu de curl?
Jorge Bucaran
1
moins de lignes de commande (si vous y tenez) - ce qui signifie moins d'options, mais la plus grande différence est que le téléchargement récursif du support wget
Ran Davidovitz
Je ne sais pas pourquoi, mais une erreur s'est unzipcurlwget
produite lors de l'envoi
15

Vous pouvez utiliser:

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

Enregistre sous: xampp-cli-master.zip

  • utiliser -Len cas de redirection trouvée.
  • utiliser -Opour les noms de fichiers distants ( master.zip)
  • utiliser -J(avec utilisation -O) pour permettre le nom de fichier d' en- tête à distance ( xampp-cli-master.zip)


Ou utilisez -opour créer votre propre nom de fichier:

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

Enregistre sous: MyFilename.zip

Remarque: (GitHub prend en charge SSL - utilisation https://)


Vous pouvez également utiliser un curlrc fichier de configuration ou un alias avec la commande CURL pour curl -O -Llui permettre de fonctionner de manière similaire à WGET.

Consultez: https://curl.haxx.se/docs/manpage.html#OPTIONS (voir: -O , -J , -L , -o )

Notez l'avertissement d'utilisation de CURL avec l'option -J:

Il n'y a aucune tentative de décoder (encore)% -sequences dans le nom de fichier fourni, cette option peut donc vous fournir des noms de fichier plutôt inattendus.

AVERTISSEMENT : Faites un usage judicieux de cette option, en particulier sous Windows. Un serveur non autorisé peut vous envoyer le nom d'une DLL ou d'un autre fichier qui pourrait éventuellement être chargé automatiquement par Windows ou un logiciel tiers.

bshea
la source
5

Si vous souhaitez télécharger le fichier, utilisez wget [option]... [URL]...plutôt.

Pour plus d'informations sur les options, tapez ceci dans votre terminal: man wget

Pour votre but:

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

Notez que le fichier .zip sera enregistré dans le répertoire actuel dans lequel vous vous trouvez.

Meintjes
la source
1
Il serait utile d’expliquer les avantages de l’utilisation de wgetplus de curl. Pour ceux qui se demandent les différences entre les deux, voir ici .
Jorge Bucaran
@JorgeBucaran J'ai lu la comparaison écrite par l'auteur de curlqui contribue également à wgetun rôle mineur. Une omission flagrante (basée sur mon petit projet une fois) est que wget est 10 fois plus rapide que curl (<2 secondes contre 12 secondes), récupérant les heures de lever et de coucher du soleil depuishttps://www.timeanddate.com
WinEunuuchs2Unix
Ainsi, parfois, lorsque vous utilisez wget et que le fichier n'est pas servi directement mais que l'URL indique au service où localiser et servir le fichier, le téléchargement final est un fichier html. Alors, mieux
vaut utiliser
3

Pour télécharger des fichiers dans GitHub (ou tout autre site qui fait des redirections) curl, vous devez passer -L(Suivre les redirections), utilisez donc:

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

Juliano Petronetto
la source
1

"curl -LOk" le fait en utilisant des protocoles non sécurisés (-k), en désactivant les vérifications de certificats SSL (qui échouent à cause du chemin incorrect ne correspondant pas au certificat) et en créant le fichier de sortie en utilisant le nom de fichier (-O) proposé par le serveur distant. (également non sécurisé). À mon avis, le serveur devrait être mieux configuré pour créer des alias de redirection locaux si nécessaire, pour éviter de devoir passer cette partie non conforme de l'URL. Mais la redirection est effectuée à l'aide d'une redirection HTTP uniquement (erreur HTTP 30x), ce qui provoque des problèmes qui ne suivent pas (par défaut) cette redirection (non sécurisée) et l'option (-k) désactive ce contrôle de sécurité. Donc, au lieu d’utiliser des redirections HTTP (déplacées de façon permanente), veuillez ajouter un lien interne sur le système de fichiers du serveur. Si cela est nécessaire parce que l'URL est en fait hébergée sur un autre serveur physique sans accès direct entre leurs systèmes de fichiers, vous devez utiliser un autre nom DNS pour cet hôte, afin que les clients interrogent directement le serveur correct, sans aucune redirection. Puis corrigez vos pages Web (vous pouvez utiliser les journaux de votre serveur Web pour voir où les redirections HTTP 30x sont renvoyées et quelles pages Web doivent éventuellement être vérifiées et mises à jour). Forcer les clients à utiliser des protocoles non sécurisés / non contrôlés n'est pas une bonne option.

Il s'agit donc certainement d'un problème de configuration très mauvaise sur le serveur Web: essayez de contacter l'administrateur pour résoudre ce problème.

verdy_p
la source
0

Eh bien, vous pouvez aussi utiliser Axel . axel est un accélérateur de téléchargement léger en ligne de commande. il supporte HTTP, HTTPS, FTPet FTPSprotocoles. son alternative agréable et plus rapide.

installer en axelutilisant:

apt-get install axel

puis téléchargez votre fichier par:

axel http://github.com/ziyaddin/xampp/archive/master.zip
Mahesh
la source
0

Utilisez l'option -Lpour suivre les redirections, vous pouvez également utiliser l' --outputoption pour donner un chemin et un nom au fichier zip. Par exemple:

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

Remarque: utilisez sudo si vous ne disposez pas des autorisations nécessaires pour écrire dans le dossier cible.

Luigi Lopez
la source