Hur att Använda curl för att Ladda ner Filer Från kommandoraden i Linux

0
477
Fatmawati Achmad Zaenuri/Shutterstock

Linux-curl kommando kan göra en hel del mer än att ladda ner filer. Ta reda på vad curl kan, och när du ska använda det istället för wget.

curl mot wget : Vad är Skillnaden?

Människor ofta kämpar för att identifiera den relativa styrkor wget och curl-kommandon. De kommandon som har vissa funktionella överlappar varandra. De var och en kan hämta filer från avlägsna platser, men där slutar likheten.

wget är ett fantastiskt verktyg för att ladda ner innehåll och filer. Det kan ladda ner filer, hemsidor och kataloger. Det innehåller intelligenta rutiner för att korsa länkar på webbsidor och rekursivt ladda ner innehåll över en hel webbplats. Den är oöverträffad som en kommandorad download manager.

curl uppfyller ett helt annat behov. Ja, det kan hämta filer, men det kan inte rekursivt navigera på en webbplats som letar efter innehåll att hämta. Vad curl faktiskt inte är låter dig interagera med andra system genom att göra förfrågningar till dessa system, och att hämta och visa sina svar till dig. Dessa reaktioner kan mycket väl vara sidans innehåll och filer, men de kan också innehålla data som tillhandahålls via en webbtjänst eller en API som ett resultat av den “frågan” ställdes av curl begäran.

Och curl är inte begränsat till webbplatser. curl har stöd för över 20 protokoll, inbegripet HTTP -, HTTPS -, SCP, SFTP, FTP och. Och förmodligen, på grund av dess överlägsna hantering av Linux-rör, böjning kan vara mer enkelt integreras med andra kommandon och skript.

Författaren av curl har en webbsida som beskriver det han ser skillnader mellan curl och wget.

Installera curl

Av de datorer som används för att undersöka denna artikel, Fedora 31 och Manjaro 18.1.0 hade curl redan är installerat. curl hade att installeras på Ubuntu 18.04 LTS. På Ubuntu, kör det här kommandot för att installera det:

sudo apt-get install curl

Curl-Version

Väljaren –version gör curlreport sin version. Den listar också alla de protokoll som den stöder.

curl –version

Hämta en Webbsida

Om vi punkt curl på en webbsida, kommer det att hämta det åt oss.

curl https://www.bbc.com

Men dess standard åtgärd är att dumpa det terminal-fönster som källkod.

Se upp: Om du inte berättar curl du vill ha något som lagras som en fil, kommer det alltid att dumpa det till terminalfönstret. Om filen finns att hämta är en binär fil, resultatet kan vara oförutsägbar. Skalet kan försöka tolka vissa av byte-värden i den binära filen som tecken eller escape-sekvenser.

Spara Data till en Fil

Låt oss berätta curl för att omdirigera utdata till en fil:

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

Den här gången får vi inte se de hämtade information skickas direkt till filen för oss. Eftersom det finns inga terminal-fönstret ut för att visa, curl utgångar till en uppsättning med information om förloppet.

Det gjorde inte detta i tidigare exempel, eftersom utvecklingen information skulle ha varit utspridda över hela sidans källkod, så curl automatiskt förträngt det.

I detta exempel, curl upptäcker att produktionen är omdirigeras till en fil och att det är säkert för att generera information om förloppet.

Den information som ges är:

  • % Totalt: Det totala belopp som ska hämtas.
  • % Mottagnaandelen och de faktiska värdena av data hämtas så långt.
  • % Xferd: procent och faktiska skickas, om data som laddas upp.
  • Genomsnittlig Hastighet Dload: Den genomsnittliga nedladdningshastigheten.
  • Genomsnittlig Hastighet Upp: Den genomsnittliga överföringshastigheten.
  • Tid Totalt: Det totala beräknade varaktighet av överföringen.
  • Tid: Den tid som gått så långt för denna överföring.
  • Tid: uppskattad tid kvar för att slutföra överföring
  • Aktuell Hastighet: aktuell överföringshastighet för denna överföring.

Eftersom vi styrt om produktionen från curl till en fil, vi har nu en fil som heter “bbc.html.”

Dubbelklicka på filen för att öppna din webbläsare så att den visar de hämtade webbsida.

Observera att adressen i webbläsarens adressfält är en lokal fil på denna dator, inte till en avlägsen webbplats.

Vi behöver inte omdirigera utdata för att skapa en fil. Vi kan skapa en fil med -o (output) alternativ, och berättar curl för att skapa filen. Här har vi använder-o alternativ och ange namnet på den fil vi vill skapa “bbc.html.”

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

Med hjälp av en ” Progress Bar för Att Övervaka Nedladdningar

Har text-baserade ladda ner information ersättas av en enkel framsteg bar, använd -# (progress bar) alternativ.

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

Starta en Avbruten Nedladdning

Det är lätt att starta en nedladdning som har avslutats eller avbrutits. Låt oss starta en nedladdning av en stor fil. Vi kommer använda den senaste långsiktigt Stöd build-version av Ubuntu 18.04. Vi använder –output alternativ för att ange namnet på den fil som vi vill spara på det in i: “ubuntu180403.iso.”

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

Nedladdningen startar och fungerar väg mot sin fullbordan.

Om vi tvingats avbryta hämtningen med Ctrl+C , vi är tillbaka till kommandotolken, och nedladdningen avbryts.

För att starta nerladdningen, använd-C (fortsätta) alternativ. Detta orsakar curl för att starta nerladdningen vid en viss punkt eller offset i målfilen. Om du använder ett bindestreck – som förskjutning, curl kommer att titta på de som redan hämtats del av filen och bestämma rätt offset för att använda för sig själv.

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

Hämtningen startas om. curl rapporter offset på som det är att starta om.

Hämta HTTP rubriker

Med -jag (chefen) alternativ, kan du hämta den HTTP-huvuden bara. Detta är samma sak som att skicka HTTP-HUVUDET kommandot till en webbserver.

curl -jag www.twitter.com

Detta kommando hämtar information bara, det behöver inte ladda ner någon web-sidor eller filer.

Ladda Ner Flera Webbadresser

Med hjälp av xargs vi kan hämta flera Webbadresser på en gång. Vi kanske vill ladda ner en serie webbsidor som utgör en enda artikel eller handledning.

Kopiera dessa Webbadresser till en editor och spara den till en fil som heter “urls-to-download.txt.” Vi kan använda xargs att behandla innehållet i varje rad i textfilen som en parameter som kommer att ligga till curl, i tur och ordning.

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

Detta är kommandot som vi måste använda för att få xargs passera dessa Webbadresser till curl en i taget:

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

Observera att detta kommando använder -O (remote) utgång kommando, som använder ett versalt “O” det Här alternativet gör att krypa för att spara den hämtade filen med samma namn som filen har på fjärrservern.

-N 1 alternativet talar om för xargs att behandla varje rad i textfilen som en enda parameter.

När du kör kommandot, du kommer att se flera nedladdningar start och mål, det ena efter det andra.

Kolla i filen visas i webbläsaren på flera filer som har hämtats. Var och en bär namnet den hade på fjärrservern.

RELATERAT: Hur man Använder xargs-Kommandot i Linux

Ladda ner Filer Från en FTP-Server

Med hjälp av curl med en FTP (File Transfer Protocol) server är lätt, även om du måste autentisera med ett användarnamn och lösenord. Att passera ett användarnamn och lösenord med curl använda -u (user) alternativet och skriv användarnamn, ett kolon”: “och lösenordet. Inte sätta ett mellanslag före eller efter kolon.

Detta är en gratis-för-att testa FTP-server är värd Rebex. Testa FTP-platsen har en pre-ange användarnamn “demo” och lösenordet är “lösenord”. Använd inte denna typ av svag användarnamn och lösenord på en produktions-eller “riktiga” FTP-server.

curl -u demo:lösenord ftp://test.rebex.net

curl siffror som vi pekar det på en FTP-server och returnerar en lista över de filer som finns på servern.

Det enda fil på servern är en “readme.txt” arkiv, 403 byte i längden. Låt oss hämta det. Använd samma kommando som för en stund sedan, med filnamnet läggs till det:

curl -u demo:lösenord ftp://test.rebex.net/readme.txt

Filen hämtas och curl visar dess innehåll i terminalfönstret.

I nästan alla fall, det kommer att vara mer bekvämt att ha den hämtade filen sparas till disk för oss, snarare än som visas i terminalfönstret. Än en gång kan vi använder-O (remote) utgång kommando för att få den fil som sparas till disk, och med samma filnamn som den har på fjärrservern.

curl -O -u-demo:lösenord ftp://test.rebex.net/readme.txt

Filen hämtas och sparas till disk. Vi kan använda ls för att kontrollera filinformationen. Det har samma namn som filen på FTP-servern, och det är samma längd, 403 byte.

ls -hl readme.txt

RELATERAT: Hur man Använder FTP-Kommandot i Linux

Skicka Parametrar till fjärrservrar

Vissa avlägsna servrar kommer att acceptera parametrar i begäran som skickas till dem. De parametrar som kan användas för att formatera den returnerade data, till exempel, eller att de kan användas för att välja exakt de data som användaren vill hämta. Det är ofta möjligt att interagera med web application programming interfaces (Api: er) med hjälp av curl.

Som ett enkelt exempel, ipify webbplats har en API som man kan söka för att kontrollera din externa IP-adress.

curl https://api.ipify.org

Genom att lägga till parametern format till kommandot, med värdet av “json” vi kan igen begäran våra externa IP-adress, men den här gången återvände data kommer att vara kodad i formatet JSON.

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

Här är ett annat exempel som använder sig av ett Google API. Den returnerar ett JSON-objekt som beskriver en bok. Parametern måste du ange International Standard Book Number (ISBN) – nummer i en bok. Du kan hitta dessa på baksidan av de flesta böcker, vanligtvis under en streckkod. Den parameter som vi använder här är “0131103628.”

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

Den returnerade data är omfattande:

Ibland curl, Ibland wget

Om jag ville att ladda ner innehåll från en webbplats och har träd-struktur på webbplatsen sökte rekursivt för det innehållet, att jag skulle använda wget.

Om jag ville att interagera med en fjärr-server eller API, och kanske ladda ner några filer eller webbsidor, att jag skulle använda curl. Om särskilt protokoll var en av de många som inte stöds av wget.

LÄS NÄSTA

  • “Hur Kan Min ISP Säger jag Använder BitTorrent?
  • “Hur man Ställer Upp en Smart Garage
  • “Vad Gör “TBH” Innebär och Hur Använder Man Det?
  • “Hur Konverterar man Lever Foton, Videor eller Gif-bilder på Din iPhone
  • “Hur man Ändrar Lösenord på Linux