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!