cURL vs. wget unter Linux: Was ist der Unterschied?
Veröffentlicht: 2022-07-13
Wenn Sie eine Gruppe von Linux-Benutzern fragen, womit sie Dateien herunterladen, werden einige sagen wget
und andere cURL
. Was ist der Unterschied und ist einer besser als der andere?
Es begann mit Konnektivität
Regierungsforscher begannen bereits in den 1960er Jahren damit, verschiedene Netzwerke miteinander zu verbinden, was zu miteinander verbundenen Netzwerken führte. Aber die Geburt des Internets, wie wir es kennen, fand am 1. Januar 1983 statt, als das TCP/IP-Protokoll implementiert wurde. Das war das fehlende Glied. Es ermöglichte unterschiedlichen Computern und Netzwerken, über einen gemeinsamen Standard zu kommunizieren.
1991 veröffentlichte CERN seine World Wide Web-Software, die es einige Jahre lang intern verwendet hatte. Das Interesse an dieser visuellen Überlagerung für das Internet war sofort und weit verbreitet. Ende 1994 gab es 10.000 Webserver und 10 Millionen Benutzer.
Diese beiden Meilensteine – das Internet und das Web – repräsentieren sehr unterschiedliche Gesichter der Konnektivität. Aber sie teilen auch viele der gleichen Funktionen.
Konnektivität bedeutet genau das. Sie stellen eine Verbindung zu einem entfernten Gerät her, z. B. einem Server. Und Sie verbinden sich damit, weil es etwas gibt, das Sie brauchen oder wollen. Aber wie rufen Sie diese remote gehostete Ressource über die Linux-Befehlszeile auf Ihren lokalen Computer ab?
1996 wurden zwei Dienstprogramme entwickelt, mit denen Sie remote gehostete Ressourcen herunterladen können. Sie sind wget
, das im Januar veröffentlicht wurde, und cURL
, das im Dezember veröffentlicht wurde. Beide arbeiten auf der Linux-Befehlszeile. Beide stellen eine Verbindung zu Remote-Servern her und rufen beide Daten für Sie ab.
Aber dies ist nicht nur der übliche Fall, bei dem Linux zwei oder mehr Tools bereitstellt, um dieselbe Aufgabe zu erledigen. Diese Dienstprogramme haben unterschiedliche Zwecke und unterschiedliche Spezialisierungen. Das Problem ist, dass sie ähnlich genug sind, um Verwirrung darüber zu stiften, welches man wann verwenden soll.
Stellen Sie sich zwei Chirurgen vor. Sie möchten wahrscheinlich weder einen Augenchirurgen, der Ihre Herz-Bypass-Operation durchführt, noch möchten Sie, dass der Herzchirurg Ihre Kataraktoperation durchführt. Ja, sie sind beide hochqualifizierte Mediziner, aber das bedeutet nicht, dass sie sich gegenseitig ersetzen.
Dasselbe gilt für wget
und cURL
.
Unterschiedliche Zwecke, unterschiedliche Funktionen, einige überschneiden sich
Das „w“ im wget
-Befehl ist ein Indikator für den beabsichtigten Zweck. Sein Hauptzweck ist das Herunterladen von Webseiten – oder sogar ganzen Websites. Seine man
beschreibt es als ein Dienstprogramm zum Herunterladen von Dateien aus dem Web unter Verwendung der HTTP-, HTTPS- und FTP-Protokolle.
Im Gegensatz dazu arbeitet cURL
mit 26 Protokollen, darunter SCP, SFTP und SMSB sowie HTTPS. Die man
besagt, dass es sich um ein Tool zum Übertragen von Daten zu oder von einem Server handelt. Es ist nicht speziell auf die Arbeit mit Websites zugeschnitten. Es ist für die Interaktion mit Remote-Servern gedacht, wobei eines der vielen unterstützten Internetprotokolle verwendet wird.
wget
ist also überwiegend website-zentriert, während cURL
etwas ist, das auf einer tieferen Ebene operiert, auf der Plain-Vanilla-Internetebene.
wget
kann Webseiten abrufen und rekursiv durch ganze Verzeichnisstrukturen auf Webservern navigieren, um ganze Websites herunterzuladen. Es ist auch in der Lage, die Links in den abgerufenen Seiten so anzupassen, dass sie korrekt auf die Webseiten auf Ihrem lokalen Computer zeigen und nicht auf ihre Gegenstücke auf dem entfernten Webserver.
Mit cURL
können Sie mit dem Remote-Server interagieren. Es kann Dateien hochladen und abrufen. cURL
funktioniert mit SOCKS4- und SOCKS5-Proxies und HTTPS zum Proxy. Es unterstützt die automatische Dekomprimierung komprimierter Dateien in den Formaten GZIP, BROTLI und ZSTD. cURL
können Sie auch mehrere Übertragungen parallel herunterladen.
Die Überschneidung zwischen ihnen besteht darin, dass Sie mit wget
und cURL
Webseiten abrufen und FTP-Server verwenden können.
Es ist nur eine grobe Metrik, aber Sie können die relativen Funktionssätze der beiden Tools einschätzen, indem Sie sich die Länge ihrer man
ansehen. Auf unserer Testmaschine ist die Manpage für wget
1433 Zeilen lang. Die man
für cURL
umfasst satte 5296 Zeilen.
Ein kurzer Blick auf wget
Da wget
Teil des GNU-Projekts ist, sollte es auf allen Linux-Distributionen vorinstalliert sein. Die Verwendung ist einfach, insbesondere für die häufigsten Verwendungszwecke: das Herunterladen von Webseiten oder Dateien.

Verwenden Sie einfach den Befehl wget
mit der URL zur Webseite oder Remote-Datei.
wget https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc
Die Datei wird abgerufen und unter ihrem ursprünglichen Namen auf Ihrem Computer gespeichert.
Um die Datei unter einem neuen Namen zu speichern, verwenden Sie die Option -O
(Ausgabedokument).
wget -O word-file-test.doc https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc
Die abgerufene Datei wird unter dem von uns gewählten Namen gespeichert.
Verwenden Sie beim Abrufen von Websites nicht die Option -O
. Wenn Sie dies tun, werden alle abgerufenen Dateien zu einer angehängt.
Um eine ganze Website abzurufen, verwenden Sie die Option -m
(Spiegelung) und die URL der Homepage der Website. Sie sollten auch --page-requisites
verwenden, um sicherzustellen, dass alle unterstützenden Dateien, die zum ordnungsgemäßen Rendern der Webseiten erforderlich sind, ebenfalls heruntergeladen werden. Die Option --convert-links
passt Links in der abgerufenen Datei so an, dass sie auf die richtigen Ziele auf Ihrem lokalen Computer statt auf externe Speicherorte auf der Website verweisen.
VERWANDT: Verwendung von wget, dem ultimativen Befehlszeilen-Download-Tool
Ein kurzer Blick auf cURL
cURL
ist ein unabhängiges Open-Source-Projekt. Es ist auf Manjaro 21 und Fedora 36 vorinstalliert, musste aber auf Ubuntu 21.04 installiert werden.
Dies ist der Befehl zum Installieren von cURL unter Ubuntu.
sudo apt install curl
Um dieselbe Datei wie bei wget
herunterzuladen und unter demselben Namen zu speichern, müssen wir diesen Befehl verwenden. Beachten Sie, dass die Option -o
(Ausgabe) mit cURL
in Kleinbuchstaben geschrieben wird.
curl -o word-file-test.doc https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc
Die Datei wird für uns heruntergeladen. Während des Downloads wird ein ASCII-Fortschrittsbalken angezeigt.
Um sich mit einem FTP-Server zu verbinden und eine Datei herunterzuladen, verwenden Sie die Option -u
(user) und geben Sie ein Paar aus Benutzername und Passwort an, wie hier:
curl -o test.png -u demo:password ftp://test.rebex.net/pub/example/KeyGenerator.png
Dadurch wird eine Datei von einem Test-FTP-Server heruntergeladen und umbenannt.
VERWANDT: So verwenden Sie curl zum Herunterladen von Dateien von der Linux-Befehlszeile
Es gibt kein Bestes
Es ist unmöglich zu antworten „Welches soll ich verwenden“ ohne zu fragen „Was versuchst du zu tun?“
Sobald Sie verstehen, was wget
und cURL
tun, werden Sie feststellen, dass sie nicht im Wettbewerb stehen. Sie erfüllen nicht die gleiche Anforderung und versuchen nicht, die gleiche Funktionalität bereitzustellen.
Beim Herunterladen von Webseiten und Websites liegt die Überlegenheit von wget
. Wenn Sie das tun, verwenden Sie wget
. Verwenden Sie für alles andere – zum Beispiel Hochladen oder die Verwendung eines der zahlreichen anderen Protokolle – cURL
.