curl & wget
Pakete, Datenträger & Netzwerk
Dateien aus dem Netz laden
Auf der Kommandozeile lädst du Dateien und sprichst Webdienste mit zwei klassischen Werkzeugen an: curl und wget. Beide holen Daten über HTTP(S), unterscheiden sich aber im Schwerpunkt: wget ist auf das Herunterladen von Dateien spezialisiert (auch ganze Webseiten rekursiv), curl ist ein vielseitiges Werkzeug für alle Arten von Anfragen – ideal zum Testen von APIs.
wget: einfaches Herunterladen
wget speichert die Datei standardmäßig unter ihrem ursprünglichen Namen und zeigt einen Fortschrittsbalken:
$ wget https://example.com/datei.tar.gz $ wget -O neuer_name.tar.gz https://example.com/datei.tar.gz $ wget -c https://example.com/gross.iso # abgebrochenen Download fortsetzen
Die Option -c (continue) ist Gold wert bei großen Dateien und wackeliger Verbindung.
curl: Daten holen und mehr
Ohne Optionen gibt curl die Antwort einfach auf dem Bildschirm aus – praktisch für kleine Textdateien oder APIs. Um eine Datei zu speichern, brauchst du eine der folgenden Optionen:
$ curl -O https://example.com/datei.tar.gz # unter Originalnamen speichern $ curl -o ziel.tar.gz https://example.com/datei.tar.gz $ curl https://api.example.com/status # Ausgabe direkt anzeigen
Eine wichtige Stolperfalle: Folgt eine URL einer Weiterleitung (HTTP 301/302), bricht curl standardmäßig ab. Mit -L folgt es Weiterleitungen automatisch:
$ curl -L -O https://example.com/neueste/datei.zip
Header und Diagnose
Mit -I fragst du nur die HTTP-Header ab (HEAD-Anfrage) – nützlich, um Status, Dateigröße oder Weiterleitungen zu prüfen, ohne die ganze Datei zu laden:
$ curl -I https://oen.de HTTP/2 200 content-type: text/html; charset=UTF-8 content-length: 4821
Für APIs sendest du oft Daten und setzt Header:
$ curl -H "Accept: application/json" https://api.example.com/v1/users $ curl -X POST -d "name=anna" https://api.example.com/v1/users
| Option | Bedeutung |
|---|---|
-O | unter Originaldateinamen speichern |
-o NAME | unter gewähltem Namen speichern |
-L | Weiterleitungen folgen |
-I | nur Header abrufen (HEAD) |
-H | eigenen Header senden |
Hinweise & Sicherheit
Sei extrem vorsichtig mit dem beliebten Einzeiler curl URL | bash: Du führst damit fremden Code ungeprüft aus – lade das Skript erst herunter, lies es, und führe es dann aus. Prüfe die Echtheit größerer Downloads über Prüfsummen (sha256sum datei) und vergleiche sie mit der Angabe des Anbieters. Verwende immer https:// statt http://, damit die Übertragung verschlüsselt ist; curl warnt bei ungültigen Zertifikaten – umgehe diese Warnung (-k) nur, wenn du genau weißt, was du tust. Zum Abfragen von DNS-Einträgen einer Adresse hilft das Kapitel Netzwerk-Grundbefehle.
Welche curl-Option lässt es Weiterleitungen folgen?