Learning Center
Linux-System

So laden Sie Dateien mit cURL herunter

20 Okt. 2025
Emmanuel Oyibo
Emmanuel Oyibo

Das Herunterladen von Inhalten von entfernten Servern ist eine Routineaufgabe für Administratoren und Entwickler. Obwohl es zahlreiche Tools für diese Aufgabe gibt, zeichnet sich cURL durch seine Vielseitigkeit und Einfachheit aus. Es handelt sich um ein Befehlszeilenprogramm, das Protokolle wie HTTP, HTTPS, FTP und SFTP unterstützt und daher für Automatisierung, Skripting und effiziente Dateiübertragungen unverzichtbar ist.

Sie können cURL direkt auf Ihrem Computer ausführen, um Dateien abzurufen. Sie können es auch in Skripte einbinden, um die Datenverarbeitung zu optimieren und so manuellen Aufwand und Fehler zu minimieren. Diese Anleitung zeigt verschiedene Methoden zum Herunterladen von Dateien mit cURL. Anhand dieser Beispiele lernen Sie, wie Sie mit Weiterleitungen umgehen, Dateien umbenennen und den Downloadfortschritt überwachen. Am Ende sollten Sie cURL sicher für Aufgaben auf Servern oder in Cloud-Umgebungen einsetzen können.

Grundlegender cURL-Befehl zum Herunterladen von Dateien
Link kopieren

Der curl-Befehl arbeitet mit mehreren Protokollen, wird jedoch hauptsächlich mit HTTP und HTTPS verwendet, um eine Verbindung zu Webservern herzustellen. Bei Bedarf kann er auch mit FTP- oder SFTP-Servern interagieren.

Standardmäßig ruft cURL eine Ressource von einer angegebenen URL ab und zeigt sie im Terminal (Standardausgabe) an. Dies ist oft nützlich, um Dateiinhalte anzuzeigen, ohne sie zu speichern, insbesondere bei kleinen Textdateien.

Beispiel: Um den Inhalt einer Textdatei unter https://example.com/file.txt anzuzeigen, führen Sie aus:

curl https://example.com/file.txt

Für kurze Textdokumente ist dieser Ansatz ausreichend. Bei großen oder binären Dateien kann der Bildschirm jedoch mit unlesbaren Daten überflutet werden, daher möchten Sie sie in der Regel speichern.

Remote-Dateien speichern
Link kopieren

Häufig besteht das Hauptziel darin, die heruntergeladene Datei auf dem lokalen Computer zu speichern, anstatt sie im Terminal zu sehen. cURL vereinfacht dies mit der Option -O (großes O), die den ursprünglichen Dateinamen der Remote-Datei beibehält.

curl -O https://example.com/file.txt

Dies ruft file.txt ab und speichert sie im aktuellen Verzeichnis unter demselben Namen. Diese Methode ist schnell und bewahrt den vorhandenen Dateinamen, was hilfreich sein kann, wenn der Dateiname eine Bedeutung hat.

Einen anderen Dateinamen wählen
Link kopieren

Manchmal ist es wichtig, die heruntergeladene Datei umzubenennen, um Kollisionen zu vermeiden oder ein klares Benennungsschema zu erstellen. Verwenden Sie in diesem Fall die Option -o (kleines o):

curl -o myfile.txt https://example.com/file.txt

Hier lädt cURL die Remote-Datei file.txt herunter, speichert sie jedoch lokal als meine_datei.txt. Dies hilft, Dateien organisiert zu halten oder versehentliches Überschreiben zu vermeiden. Besonders wertvoll ist dies in Skripten, die beschreibende Dateinamen benötigen.

Weiterleitungen folgen
Link kopieren

Wenn eine Datei angefordert wird, kann der Server Ihrem Client mitteilen, dass er zu einer anderen URL wechseln soll. Das Verstehen und Handhaben von Weiterleitungen ist entscheidend für erfolgreiche Downloads.

Warum Weiterleitungen wichtig sind
Link kopieren

Weiterleitungen werden häufig bei umstrukturierten Websites, verschobenen Dateien oder Spiegelservern verwendet. Ohne Weiterleitungsunterstützung stoppt cURL nach der ersten „verschoben“-Antwort, und Sie erhalten die Datei nicht.

Verwendung von -L oder --location
Link kopieren

Um cURL anzuweisen, einer Weiterleitungskette bis zum endgültigen Ziel zu folgen, verwenden Sie -L (oder --location):

curl -L -O https://example.com/redirected-file.jpg

So kann cURL die richtige Datei abrufen, selbst wenn die ursprüngliche URL auf eine andere Adresse verweist. Wenn Sie -L weglassen, zeigt cURL lediglich die Weiterleitungsnachricht an und beendet den Vorgang, was bei Websites mit mehreren Weiterleitungen problematisch ist.

Mehrere Dateien herunterladen
Link kopieren

cURL kann auch mehrere Datei-Downloads gleichzeitig verarbeiten, sodass Sie den Befehl nicht wiederholt ausführen müssen.

Verwendung von geschweiften Klammern und Mustern
Link kopieren

Wenn Dateinamen einem Muster folgen, können geschweifte Klammern {} verwendet werden, um sie kurz anzugeben:

curl -O https://example.com/files/{file1.jpg,file2.jpg,file3.jpg}

cURL ruft jede Datei der Reihe nach ab, was besonders in automatisierten Workflows nützlich ist.

Verwendung von Bereichen
Link kopieren

Für eine Reihe von nummerierten oder alphabetisch benannten Dateien können Sie einen Bereich in eckigen Klammern angeben:

curl -O https://example.com/files/file[1-5].jpg

cURL iteriert automatisch durch die Dateien file1.jpg bis file5.jpg. Dies ist ideal für gleichmäßig benannte Dateiserien.

Mehrere Downloads verketten
Link kopieren

Wenn Sie unterschiedliche URLs für jede Datei haben, können Sie sie miteinander verketten:

curl -O https://example1.com/file1.jpg -O https://example2.com/file2.jpg

Dieser Ansatz lädt file1.jpg von der ersten Website und file2.jpg von der zweiten herunter, ohne mehrere Befehle ausführen zu müssen.

Geschwindigkeitsbegrenzung und Zeitüberschreitungen
Link kopieren

In bestimmten Situationen möchten Sie möglicherweise die Downloadgeschwindigkeit steuern oder verhindern, dass cURL zu lange auf einen nicht reagierenden Server wartet.

Bandbreitenkontrolle
Link kopieren

Um zu verhindern, dass Ihr Netzwerk überlastet wird oder um langsame Bedingungen zu simulieren, können Sie die Downloadrate mit --limit-rate begrenzen:

curl --limit-rate 2M -O https://example.com/bigfile.zip

2M steht für 2 Megabyte pro Sekunde. Sie können auch K für Kilobyte oder G für Gigabyte verwenden.

Zeitüberschreitungen
Link kopieren

Wenn ein Server zu langsam ist, möchten Sie möglicherweise, dass cURL nach einer bestimmten Zeit stoppt. Der Parameter --max-time erledigt genau das:

curl --max-time 60 -O https://example.com/file.iso

Hier beendet cURL den Vorgang nach 60 Sekunden, was bei Skripten nützlich ist, die schnelle Fehlererkennung benötigen.

Stiller und ausführlicher Modus
Link kopieren

cURL kann seine Ausgabe anpassen, um minimale oder ausführliche Informationen anzuzeigen.

Stille Downloads
Link kopieren

Für Batch-Aufgaben oder Cronjobs, bei denen Sie keine Fortschrittsanzeigen benötigen, verwenden Sie -s (oder --silent):

curl -s -O https://example.com/file.jpg

Dies blendet Fortschritt und Fehler aus, was für sauberere Protokolle sorgt. Die Fehlersuche wird jedoch schwieriger, wenn ein Fehler im Stillen auftritt.

Ausführlicher Modus
Link kopieren

Im Gegensatz dazu gibt -v (oder --verbose) detaillierte Anfragen- und Antwortinformationen aus:

curl -v https://example.com

Die ausführliche Ausgabe ist unschätzbar, wenn Sie Probleme wie ungültige SSL-Zertifikate oder falsche Weiterleitungen debuggen.

Authentifizierung und Sicherheit
Link kopieren

Einige Downloads erfordern Anmeldedaten oder eine sichere Verbindung.

HTTP/FTP-Authentifizierung
Link kopieren

Wenn ein Server einen Benutzernamen und ein Passwort benötigt, verwenden Sie -u:

curl -u username:password -O https://example.com/protected/file.jpg

Das direkte Einbetten von Anmeldedaten kann riskant sein, da sie in Protokollen oder Prozesslisten erscheinen könnten. Verwenden Sie nach Möglichkeit Umgebungsvariablen oder .netrc-Dateien für eine sicherere Handhabung.

HTTPS und Zertifikate
Link kopieren

Standardmäßig überprüft cURL SSL-Zertifikate. Wenn das Zertifikat ungültig ist, blockiert cURL die Übertragung. Sie können diese Prüfung mit -k oder --insecure umgehen, was jedoch Sicherheitsrisiken birgt. Verwenden Sie nach Möglichkeit eine vertrauenswürdige Zertifizierungsstelle, damit Verbindungen authentifiziert bleiben.

Verwendung eines Proxys
Link kopieren

In einigen Umgebungen muss der Datenverkehr über einen Proxyserver geleitet werden, bevor er das Ziel erreicht.

Herunterladen über einen Proxy
Link kopieren

Verwenden Sie die Option -x oder --proxy, um den Proxy anzugeben:

curl -x http://proxy_host:proxy_port -O https://example.com/file.jpg

Ersetzen Sie proxy_host und proxy_port durch die entsprechenden Angaben. cURL leitet die Anfrage an den Proxy weiter, der dann die Datei in Ihrem Namen abruft.

Proxy-Authentifizierung
Link kopieren

Wenn Ihr Proxy Anmeldedaten erfordert, können Sie diese in die URL einbetten:

curl -x https://proxy.example.com:8080 -U myuser:mypassword -O https://example.com/file.jpg

Auch hier gilt: Das Speichern sensibler Daten im Klartext ist gefährlich. Verwenden Sie stattdessen Umgebungsvariablen oder Konfigurationsdateien.

Downloadfortschritt überwachen
Link kopieren

Die Verfolgung des Downloadfortschritts ist bei großen Dateien oder langsamen Verbindungen wichtig.

Standard-Fortschrittsanzeige
Link kopieren

Standardmäßig zeigt cURL eine Fortschrittsanzeige an, die die Gesamtgröße, Übertragungsgeschwindigkeit und geschätzte Fertigstellungszeit enthält. Zum Beispiel:

 % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1256  100  1256    0     0   2243      0 --:--:-- --:--:-- --:--:--  2246

Diese Anzeige hilft Ihnen, abzuschätzen, wie viel noch verbleibt und ob die Übertragungsrate akzeptabel ist.

Kompakte Fortschrittsleiste
Link kopieren

Wenn Sie weniger Details wünschen, fügen Sie -# hinzu:

curl -# -O https://example.com/largefile.iso

Eine einfachere Leiste zeigt den Gesamtfortschritt in Prozent an. Sie ist übersichtlicher, bietet aber keine tieferen Statistiken wie die aktuelle Geschwindigkeit.

Fortschritt in Skripten erfassen
Link kopieren

Wenn Sie cURL in Skripten verwenden, möchten Sie möglicherweise Fortschrittsdaten aufzeichnen. cURL sendet Fortschrittsinformationen normalerweise an stderr, daher können Sie sie umleiten:

curl -# -O https://example.com/largefile.iso 2>progress.log

Hier enthält progress.log die Statusaktualisierungen, die Sie analysieren oder später speichern können.

Fazit
Link kopieren

cURL überzeugt als flexibles Befehlszeilen-Tool zum Herunterladen von Dateien über verschiedene Protokolle und Umgebungen. Egal, ob Sie komplexe Weiterleitungen handhaben, Dateien im Handumdrehen umbenennen oder die Bandbreite begrenzen müssen – cURL bietet die passenden Optionen. Wenn Sie die wichtigsten Parameter und Modi beherrschen, können Sie cURL nahtlos in Ihre tägliche Arbeit für Skripting, Automatisierung und effiziente Dateiübertragungen integrieren.