Wie Verwenden von curl zum Herunterladen von Dateien Aus dem Linux-Kommandozeile

0
2097
Fatmawati Achmad Zaenuri/Shutterstock

Die Linux-curl-Befehl kann eine ganze Menge mehr als download-Dateien. Finden Sie heraus, was curl ist in der Lage, und Wann sollte man es verwenden anstelle von wget.

curl vs. wget : Was ist der Unterschied?

Menschen haben oft Schwierigkeiten zu erkennen, die relativen stärken der wget und curl-Befehle. Die Befehle haben eine gewisse funktionelle überlappung. Sie können die einzelnen Dateien von remote-Standorten, aber das ist, wo die ähnlichkeit endet.

wget ist ein fantastisches Werkzeug für das herunterladen von Inhalten und Dateien. Es können download-Dateien, web-Seiten und Verzeichnisse. Es enthält intelligente Routinen zu durchqueren, links in web-Seiten und rekursiv herunterladen von Inhalten der gesamten website. Es ist unübertroffen als Kommandozeilen-download-manager.

curl erfüllt einen ganz unterschiedlichen Bedarf. Ja, es kann abrufen von Dateien, aber es kann nicht rekursiv navigieren auf einer website auf der Suche nach Inhalten abzurufen. Was LOCKE tatsächlich ist, können Sie interagieren mit remote-Systemen, indem Sie die Anforderungen an diese Systeme, und das abrufen und zeigen Ihre Reaktionen auf Sie. Diese Antworten könnten eine web-Seite Inhalte und Dateien, aber Sie enthalten auch Daten über einen Webservice oder eine API als ein Ergebnis der “Frage”, bat die curl-Anfrage.

Und LOCKE ist nicht beschränkt auf Webseiten. curl unterstützt über 20 Protokolle, einschließlich HTTP, HTTPS, SCP, SFTP und FTP. Und wohl auch, aufgrund seiner überlegenen Handhabung von Linux-Rohre, Rollen können leicht integriert mit anderen Befehlen und-Skripts.

Der Autor von curl eine Webseite, die beschreibt die Unterschiede sieht er zwischen curl und wget.

Die Installation von curl

Aus der Computer bei der Erforschung dieser Artikel, Fedora 31 und Manjaro 18.1.0 hatte LOCKE bereits installiert. LOCKE hatte für die Installation auf Ubuntu 18.04 LTS. Auf Ubuntu, führen Sie diesen Befehl um es zu installieren:

sudo apt-get install curl

Die curl-Version

Die –version-option macht curlreport seine version. Außerdem sind alle den Protokollen, die es unterstützt.

curl –version

Abrufen einer Web-Seite

Wenn wir Punkt curl auf einer web-Seite abrufen wird es für uns.

curl https://www.bbc.com

Aber seine Standard-Aktion ist es, werfen Sie es in das terminal-Fenster den Quellcode.

Vorsicht: Wenn Sie nicht sagen, curl Sie möchten, dass etwas gespeichert als eine Datei, es wird immer werfen Sie es in das terminal-Fenster. Wenn die Datei abgerufen wird, ist eine binäre Datei, kann das Ergebnis unvorhersehbar sein. Die Schale kann versuchen, Sie zu interpretieren einige der byte-Werte in der Binär-Datei als steuerzeichen oder ESC-Sequenzen.

Speichern von Daten in eine Datei

Lassen Sie uns sagen, curl umleiten der Ausgabe in eine Datei:

curl https://www.bbc.com > bbc.html

Diese Zeit, die wir nicht sehen, die abgerufenen Informationen, ist es geschickt, direkt in die Datei für uns. Da gibt es kein terminal-Fenster die Ausgabe angezeigt, curl gibt eine Reihe von Informationen über den Fortschritt.

Es nicht tun, im vorherigen Beispiel, weil die Informationen über den Fortschritt gewesen wäre, verstreut in den Quellcode der Webseite, so curl automatisch unterdrückt es.

In diesem Beispiel, LOCKE erkennt, dass die Ausgabe wird in eine Datei umgeleitet, und dass es sicher ist, Sie zum generieren der Informationen über den Fortschritt.

Die bereitgestellten Informationen ist:

  • % Insgesamt: Der Gesamtbetrag abgerufen werden.
  • % Erhalten: der Prozentsatz und Die tatsächlichen Werte der Daten abgerufen werden, so weit.
  • % Xferd: Die Prozent und tatsächlichen gesendet, wenn Daten hochgeladen werden.
  • Durchschnittliche Geschwindigkeit Dload: Die Durchschnittliche download-Geschwindigkeit.
  • Durchschnittliche Geschwindigkeit Upload: Die Durchschnittliche upload-Geschwindigkeit.
  • Zeit Insgesamt: Die geschätzte Dauer der übertragung.
  • Verbrachte Zeit: Die verstrichene Zeit, die bisher für diesen transfer.
  • Zeit: Die geschätzte Zeit für den transfer abzuschließen
  • Aktuelle Geschwindigkeit: Die aktuelle Geschwindigkeit für diesen transfer.

Weil wir umgeleitet, die Ausgabe von curl in eine Datei, wir haben nun eine Datei namens “bbc.html.”

Ein Doppelklick auf diese Datei öffnet sich Ihr Standard-browser so, dass es zeigt die abgerufenen web-Seite.

Beachten Sie, dass die Adresse in der Adressleiste des Browsers wird eine lokale Datei auf diesem computer, nicht mit einem remote-website.

Haben wir nicht, leiten Sie die Ausgabe in eine Datei erstellen. Wir können erstellen Sie eine Datei mit der -o (output) die option, und sagen, curl um die Datei zu erstellen. Hier verwenden wir die option-o und der Angabe des namens der Datei, die wir erstellen möchten “bbc.html.”

curl-o bbc.html https://www.bbc.com

Mit einem Fortschrittsbalken Zur Überwachung Downloads

Um die text-basierte download-Informationen ersetzt durch eine einfache Fortschrittsanzeige verwenden Sie die Option -# (progress bar) option.

curl -x -o bbc.html https://www.bbc.com

Das Neustarten einer Unterbrochenen Download

Es ist einfach, starten Sie einen download, der wurde gekündigt oder unterbrochen werden. Beginnen wir den download eines beträchtlichen Datei. Wir verwenden die aktuelle Langzeit-Support-build von Ubuntu 18.04. Wir sind mit –output-option, um den Namen der Datei, die wir wollen, um es zu speichern in: “ubuntu180403.iso.”

curl –output ubuntu18043.iso http://releases.ubuntu.com/18.04.3/ubuntu-18.04.3-desktop-amd64.iso

Der download startet und arbeitet seinen Weg in Richtung Fertigstellung.

Wenn wir gewaltsam unterbrechen Sie den download mit Strg+C , wir sind zurückgekehrt, um die Eingabeaufforderung, und der download wird abgebrochen.

Neu starten, der download, die Verwendung der -C (weiter bei) option. Dies bewirkt, dass curl starten Sie den download zu einem bestimmten Punkt oder offset innerhalb der Ziel-Datei. Wenn Sie einen Bindestrich – offset, LOCKE wird Blick auf die bereits heruntergeladenen Teile der Datei und bestimmen Sie den richtigen offset zu verwenden, für sich selbst.

curl -C – – — – Ausgabe ubuntu18043.iso http://releases.ubuntu.com/18.04.3/ubuntu-18.04.3-desktop-amd64.iso

Der download wird neu gestartet. curl Berichte der offset, an dem es neu gestartet wird.

Abrufen von HTTP-Headern

Mit der-I (Kopf) die option, die Sie abrufen können, die HTTP-Header nur. Dies ist das gleiche wie das senden der HTTP HEAD-Befehl an einen server.

curl-I www.twitter.com

Dieser Befehl ruft nur der information; es nicht herunterladen, web-Seiten oder Dateien.

Das Herunterladen Mehrerer URLs

Mit xargs können wir laden Sie mehrere URLs auf einmal. Vielleicht wollen wir zum download eine Reihe von web-Seiten, aus denen sich ein einzelner Artikel oder ein tutorial.

Kopieren Sie diese URLs zu einem editor, und speichern Sie in einer Datei namens “urls-to-download.txt.” Wir können xargs zu behandeln, den Inhalt jeder Zeile der text-Datei als parameter, die es zu ernähren, zu locken, im Gegenzug.

https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu#0
https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu#1
https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu#2
https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu#3
https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu#4
https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-ubuntu#5

Dies ist der Befehl, den wir brauchen, um zu verwenden, um xargs übergeben Sie diese URLs zu Rollen ein zu einer Zeit:

xargs -n 1 curl-O < urls-to-download.txt

Beachten Sie, dass dieser Befehl verwendet die -O – (remote-Datei) den Befehl Ausgabe, die mit einem Großbuchstaben “O” bewirkt Diese option, dass LOCKE zum speichern die abgerufenen Datei mit dem gleichen Namen, den die Datei auf dem remote-server.

Die -n option 1 sagt xargs zu behandeln, jede Zeile der text-Datei als einen einzigen parameter.

Wenn Sie den Befehl ausführen, werden Sie sehen, mehrere downloads starten und beenden, eine nach der anderen.

Überprüfen Sie in der Datei-browser zeigt die Dateien heruntergeladen wurden. Jeder trägt den Namen hatte es auf dem remote-server.

VERWANDTE: Wie die xargs-Befehl unter Linux

Herunterladen von Dateien Von einem FTP-Server

Verwendung von curl mit einem FTP (File Transfer Protocol) – server ist einfach, auch wenn Sie zur Authentifizierung einen Benutzernamen und ein Passwort. Übergeben Sie einen Benutzernamen und ein Passwort, mit curl verwenden Sie die -u (user; Benutzer) option, und geben Sie den Benutzernamen, einem Doppelpunkt “: “und das Kennwort ein. Nicht setzen Sie ein Leerzeichen vor oder nach dem Doppelpunkt.

Dies ist ein free-for-Tests FTP-server hosted by Rebex. Die test-FTP-site hat einen voreingestellten Benutzernamen “demo” und das Passwort ist “password”. Verwenden Sie nicht diese Art von schwach Benutzername und Passwort an einer Produktion oder einem “echten” FTP-server.

curl -u-demo:Passwort ftp://test.rebex.net

curl zahlen darauf hin, dass wir ‘ re zeigt es bei einem FTP-server, und gibt eine Liste der Dateien, die auf dem server vorhanden sind.

Die einzige Datei auf diesem server ein “readme.txt” Datei, 403 bytes Länge. Lassen Sie es abzurufen. Verwenden Sie den gleichen Befehl wie ein Augenblick vor, mit den Dateinamen angehängt:

curl -u-demo:Passwort ftp://test.rebex.net/readme.txt

Die Datei wird abgerufen und LOCKE zeigt seinen Inhalt in das terminal-Fenster.

In fast allen Fällen wird es bequemer sein, um die abgerufene Datei auf der Festplatte gespeichert, die für uns, anstatt angezeigt im terminal-Fenster. Einmal mehr können wir die -O – (remote-Datei) Ausgabe Befehl, um die Datei auf der Festplatte gespeichert, mit dem gleichen Namen, die es auf den remote-server.

curl-O -u-demo:Passwort ftp://test.rebex.net/readme.txt

Die Datei wird abgerufen und auf der Festplatte gespeichert. Wir können verwenden Sie ls, um zu überprüfen, die Datei details. Es hat den gleichen Namen wie die Datei auf dem FTP-server, und es ist die gleiche Länge, 403 bytes.

ls -hl readme.txt

VERWANDTE: Wie man die FTP-Befehl unter Linux

Senden von Parametern an Remote-Servern

Einige remote-Server wird die Parameter akzeptieren, die in Anfragen, die an Sie gesendet wurden. Der Parameter könnte benutzt werden, um format der zurückgegebenen Daten, zum Beispiel, oder Sie können verwendet werden, um wählen Sie den genauen Daten, die der Nutzer abrufen. Oft ist es möglich, die Interaktion mit web-APIs (application programming interfaces) mit curl.

Als einfaches Beispiel, die ipify website hat eine API abgefragt werden kann, um festzustellen, Ihre externe IP-Adresse.

curl https://api.ipify.org

Durch hinzufügen der parameter format den Befehl, mit dem Wert “json” wir können wieder fordern Sie unsere externe IP-Adresse, aber dieses mal die zurückgegebenen Daten werden verschlüsselt in das JSON-format.

curl https://api.ipify.org?format=json

Hier ist ein weiteres Beispiel für die Verwendung einer Google-API. Es gibt ein JSON-Objekt beschreibt ein Buch. Die parameter, die Sie bereitstellen müssen, ist die Internationale Standard-Buch-Nummer (ISBN) Anzahl der ein Buch. Sie finden diese auf der Rückseite der meisten Bücher, die in der Regel unter einem barcode. Die parameter, die wir hier verwenden werden, ist “0131103628.”

curl https://www.googleapis.com/books/v1/volumes?q=isbn:0131103628

Die zurückgegebenen Daten sind umfassend:

Manchmal locken, Manchmal wget

Wenn wollte ich den download von Inhalten von einer website und ein Baum-Struktur der website durchsucht rekursiv für diesen Inhalt, ich würde wget.

Wenn ich wollte, um die Interaktion mit einem remote-server oder die API, und eventuell laden Sie einige Dateien oder web-Seiten verwende ich curl. Vor allem, wenn das Protokoll war einer der vielen, die nicht unterstützt von wget.

LESEN SIE WEITER

  • › Wie Kann Mein ISP Sagen, ich bin Mit BitTorrent?
  • › So richten Sie eine Smart-Garage
  • “Was Bedeutet “TBH” Bedeuten, und Wie Verwenden Sie Es?
  • › Wie Konvertieren von Live-Fotos, Videos oder GIFs auf dem iPhone
  • › Wie Änderung der Account-Passwörter auf Linux