Laden Sie die ZIP-Datei mit dem Befehl curl herunter

33

Wie kann ich eine ZIP-Datei mit dem Befehl curl herunterladen? Ich habe es versucht curl -sO, aber es ist ein Fehler aufgetreten. Ich möchte eine ZIP-Datei von folgender Adresse herunterladen: http://github.com/ziyaddin/xampp/archive/master.zip

kann aber nicht. Was muss ich eingeben?

Ziyaddin Sadigov
quelle
Was ist die Fehlermeldung?
David Foerster

Antworten:

36

Ich habe verwendet curl -LOund es hat gut funktioniert. wgetfunktioniert auch.

Ziyaddin Sadigov
quelle
Hat für mich gearbeitet. unter Windows 7
fedmich 10.12.14
20

Versuchen Sie wget statt curl: wget http://github.com/ziyaddin/xampp/archive/master.zip

don.joey
quelle
1
Kann der Downvoter das erklären? Oder ist das andere Plakat?
don.joey
4
Könnten Sie erklären , warum wgetstatt curl?
Jorge Bucaran
1
weniger Befehlszeilen (wenn Sie sich interessieren) - was weniger Optionen bedeutet, aber der größte Unterschied ist, dass wget rekursiven Download unterstützen
Ran Davidovitz
Ich weiß nicht warum, aber ich hatte einen Fehler bei der Ausgabe unzipder heruntergeladenen Datei curlund es funktionierte einwandfrei mitwget
Dinei
15

Sie können verwenden:

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

Speichert als: xampp-cli-master.zip

  • Verwenden Sie diese -LOption, wenn eine Umleitung gefunden wurde.
  • Verwendung -Ovon Remote - Dateinamen ( master.zip)
  • benutze -J(benutze mit -O), um den Dateinamen des entfernten Headers ( xampp-cli-master.zip) zuzulassen


Oder verwenden Sie -o, um Ihren eigenen Dateinamen zu erstellen:

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

Speichert als: MyFilename.zip

Hinweis: (GitHub unterstützt SSL - Verwendung https://)


Sie können auch eine curlrc Konfigurationsdatei oder einen Alias ​​für den CURL-Befehl verwenden curl -O -L, damit er ähnlich wie WGET funktioniert.

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

Beachten Sie die Warnung zur Verwendung von CURL mit der Option -J:

Es wird (noch) nicht versucht,% -Sequenzen im angegebenen Dateinamen zu dekodieren, daher liefert diese Option möglicherweise eher unerwartete Dateinamen.

WARNUNG : Verwenden Sie diese Option mit Bedacht, insbesondere unter Windows. Ein Rogue-Server könnte Ihnen den Namen einer DLL oder einer anderen Datei senden, die möglicherweise automatisch von Windows oder einer Software von Drittanbietern geladen wird.

bshea
quelle
5

Wenn Sie die Datei herunterladen möchten, verwenden Sie wget [option]... [URL]...stattdessen.

Weitere Informationen zu den Optionen erhalten Sie, indem Sie Folgendes in Ihr Terminal eingeben: man wget

Für Sie:

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

Beachten Sie, dass die ZIP-Datei im aktuellen Verzeichnis gespeichert wird, in dem Sie sich befinden.

Meintjes
quelle
1
Es wäre hilfreich, die Vorteile der Verwendung wgetgegenüber von zu erläutern curl. Für alle, die sich die Unterschiede zwischen den beiden fragen, siehe hier .
Jorge Bucaran
@JorgeBucaran Ich habe den Vergleich gelesen, den der Autor geschrieben hat und zu dem curlauch wgetin untergeordneter Rolle beiträgt . Eine krasse Auslassung (basierend auf meinem einmaligen kleinen Projekt) ist, dass wget 10-mal schneller ist als curl (<2 Sekunden vs. 12 Sekunden) und Sonnenauf- und -untergangszeiten vonhttps://www.timeanddate.com
WinEunuuchs2Unix
Wenn Sie also wget verwenden und die Datei nicht direkt bereitgestellt wird, sondern die URL einem Dienst mitteilt, wo die Datei gefunden und bereitgestellt werden soll, wird am Ende ein HTML-Code heruntergeladen. Daher ist die Locke für einige Dateien besser
Zloy Smiertniy
3

Um Dateien in GitHub (oder auf einer anderen Site, die Weiterleitungen erstellt) mit herunterzuladen curl, müssen Sie -LFolgendes übergeben (Weiterleitungen folgen):

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

Juliano Petronetto
quelle
1

Mit "curl -LOk" werden unsichere Protokolle (-k) verwendet, SSL-Zertifikatsüberprüfungen deaktiviert (die fehlschlagen, weil der falsche Pfad nicht mit dem Zertifikat übereinstimmt) und die Ausgabedatei mit dem vom Remoteserver vorgeschlagenen Dateinamen (-O) erstellt (auch unsicher). Meiner Meinung nach sollte der Server besser so konfiguriert werden, dass bei Bedarf lokale Umleitungs-Aliase erstellt werden, um zu vermeiden, dass dieser nicht konforme Teil der URL übergeben werden muss. Die Umleitung erfolgt jedoch nur über eine HTTP-Umleitung (HTTP-Fehler 30x), wodurch Probleme auftreten, die (standardmäßig) nicht auf diese (unsichere) Umleitung folgen, und die Option (-k) deaktiviert diese Sicherheitsüberprüfung. Fügen Sie statt HTTP-Weiterleitungen (dauerhaft verschoben) einen internen Link zum Dateisystem des Servers hinzu. Wenn dies erforderlich ist, weil die URL tatsächlich auf einem anderen physischen Server ohne direkten Zugriff zwischen ihren Dateisystemen gehostet wird, sollten Sie einen anderen DNS-Namen für diesen Host verwenden, damit die Clients den richtigen direkt abfragen, ohne dass eine Umleitung erforderlich ist. Korrigieren Sie dann Ihre Webseiten (Sie können Ihre Webserver-Protokolle verwenden, um festzustellen, wo HTTP 30x-Weiterleitungen zurückgegeben werden und welche Webseiten möglicherweise überprüft und aktualisiert werden müssen). Es ist keine gute Option, Clients zu zwingen, ungesicherte / ungeprüfte Protokolle zu verwenden.

Dies ist also definitiv ein Problem mit einer sehr schlechten Konfiguration auf dem Webserver: Wenden Sie sich an den Administrator, um das Problem zu beheben.

verdy_p
quelle
0

Nun, Sie können auch Axel verwenden . axel ist ein Light Command Line Download Accelerator. es unterstützt HTTP, HTTPS, FTPund FTPSprotokolle. Es ist eine schöne und schnellere Alternative.

installieren axelmit:

apt-get install axel

Laden Sie dann Ihre Datei herunter, indem Sie:

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

Verwenden Sie die Option -L, um Weiterleitungen zu folgen. Sie können auch die --outputOption verwenden, um der ZIP-Datei einen Pfad und einen Namen zu geben. Beispielsweise:

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

Hinweis: Verwenden Sie sudo, wenn Sie nicht zum Schreiben in den Zielordner berechtigt sind.

Luigi Lopez
quelle