Der Befehl curl

In diesem Beitrag lernen Sie den Befehl curl kennen, welcher unter Linux- / UNIX-Betriebssystemen zur Dateiübertragung von oder zu einem Server eingesetzt wird. Es werden verschiedene Protokolle unterstützt - dazu gehören etwa HTTP, HTTPS, FTP, FTPS, SCP, TELNET und LDAP. Das Werkzeug wurde für den Einsatz ohne Benutzerinteraktion entwickelt und wird entsprechend über Befehlszeilenargumente gesteuert.

Für die Datenübertragung greift curl auf die Bibliothek libcurl zurück. curl bietet darüber hinaus eine Vielzahl nützlicher Funktionen, wie zum Beispiel die Proxy-Unterstützung, Benutzerauthentifizierung, FTP Upload, HTTP Post, SSL-Verbindungen und Cookies.

Installation

curl ist im gleichnamigen Paket enthalten und kann über den folgenden Befehl mit apt installiert werden:

apt-get install curl

Wenn Sie nähere Informationen zur Paket- und Quellenverwaltung mit apt erfahren wollen, lesen Sie auch unseren Beitrag dazu.

Allgemeine Syntax

Die allgemeine Syntax von curl lautet folgendermaßen:

curl [Optionen] [URL(s)]

Es können beliebig viele URLs durch Leerzeichen getrennt aufgelistet werden - sie werden dann in der Reihenfolge, in der sie angegeben wurden, verarbeitet. Die Syntax der URLs ist abhängig vom jeweiligen Protokoll und kann in RFC 3986 nachgelesen werden.

Die Angabe mehrerer, sich leicht unterscheidender URLs ist unter Verwendung geschweifter Klammern möglich. In den geschweiften Klammern stehen dann kommasepariert die Varianten des entsprechenden Bestandteils der URL. Ein Beispiel, welches die verschiedenen Silos dieser Website in einer URL bündelt, sieht folgendermaßen aus:

https://profi-tutorials.de/{linux,e-business,it-consulting,foto}/

Weiterhin ist es auch möglich, alphanumerische Sequenzen, wie etwa "[a-z]", "[0-10]" oder "[001-100]" zu verwenden. Seit curl 7.15.1 (die Version ist mithilfe der Option -V zu überprüfen, siehe unten) ist es zudem auch möglich eine Schrittweite bei den Sequenzen anzugeben, um nur jede N-te Zahl (bzw. Buchstaben) zu erhalten: z.B. "[0-100:5]" für die Zahlen 0, 5, 10, ..., 100.

Wichtige Optionen

In diesem Abschnitt werden einige der wichtigsten Optionen des Befehls curl vorgestellt:

-C - Dateiübertragung fortsetzen

Die Option -C wird verwendet, um eine vorangegangene Dateiübertragung an einem gegebenen Offset fortzusetzen. Der Offset gibt dabei die genaue Anzahl Bytes an, die übersprungen werden, gezählt vom Anfang der Quelldatei (vor der Übertragung zum Ziel).

curl -C [Offset] [URL(s)]

Wird als Offset ein Minuszeichen "-" übergeben, so versucht curl automatisch anhand der gegebenen Ein- und Ausgabedateien herauszufinden, wo die Übertragung fortgesetzt werden kann:

curl -C - [URL(s)]

-L - Weiterleitungen folgen

Wird die Option -L angegeben, so folgt curl Weiterleitungen (HTTP / HTTPS):

curl -L [URL(s)]

-o - Ausgabedatei spezifizieren

Der Inhalt der heruntergeladenen Datei kann unter Verwendung der Option -o in eine bestimmte Ausgabedatei geschrieben werden:

curl -o [Datei] [URL(s)]

-O - Originalname für Ausgabedatei verwenden

Mit der Option -O kann der Inhalt der heruntergeladenen Datei in eine mit dem Originalnamen benannte Ausgabedatei geschrieben werden:

curl -O [URL(s)]

-T - Datei übertragen

Die Option -T wird zur Übertragung einer bestimmten Datei zum angegebenen Ziel verwendet:

curl -T [Datei] [URL(s)]

-u - Zugangsdaten übergeben

Mithilfe der Option -u können Zugangsdaten übertragen werden. Benutzername und Passwort werden durch einen Doppelpunkt ":" getrennt angegeben:

curl -u  [Benutzername]:[Passwort] [URL(s)]

-v - Ausführliche Ausgabe

Wird die Option -v verwendet, so gibt curl ausführliche Informationen zur Client-Server-Kommunikation aus:

curl -v [URL(s)]

-V - Informationen zu curl ausgeben

Verschiedene Informationen zu curl selbst, wie beispielsweise die Version sowie unterstützte Protokolle und Funktionen, können mit der Option -V abgerufen werden:

curl -V

-X - HTTP-Command ausführen

Mit der Option -X ist es möglich, einen bestimmten HTTP-Command (z.B. GET, PUT, DELETE) auf der angegebenen URL auszuführen. Standardmäßig wird GET verwendet.

curl -X [Command] [URL(s)]

Abonniere JETZT unseren Newsletter!


Verpasse nie wieder neue Beiträge und exklusive Insider-Only-Inhalte!

Joel Benseler

Click Here to Leave a Comment Below

Leave a Comment: