Brug af cURL til at downloade fjernfiler fra kommandolinjen

Indholdsfortegnelse:

Anonim

Det kraftfulde curl-kommandolinjeværktøj kan bruges til at downloade filer fra stort set enhver fjernserver. Langvarige kommandolinjebrugere ved, at dette kan være nyttigt i en lang række situationer, men for at holde tingene simple vil mange opleve, at download af en fil med curl ofte kan være et hurtigere alternativ til at bruge en webbrowser eller FTP-klient fra GUI-siden af Mac OS X (eller linux).Dette er nyttigt i lokale situationer, men der er særlig værdi, hvis du er i en situation, hvor du skal downloade noget til en ekstern Mac, når du er tilsluttet via SSH.

Med henblik på denne gennemgang vil vi primært fokusere på at downloade filer fra de to almindeligt forekommende HTTP- og SFTP-protokoller, selvom det skal bemærkes, at cURL understøtter mange flere protokoller. Selvom curl er let at bruge, anbefales det at have en vis viden om kommandolinjen.

Download Exact Match Files with curl -O

curl -O

Dette betyder, at hvis den angivne URL-fil hedder "sample.zip", vil den downloades med filnavnet "sample.zip", og hvis filen hedder noget enormt og kompliceret som "LongExampleFileNameForOSXDaily-v- 1-3-51-revision-515b12-readme.txt" på fjernserveren, vil den gemme med det nøjagtige navn på den lokale maskine. Længere filnavne håndteres ofte bedre med -o-flaget i stedet for -O, som vi behandler snart.

Almindelige læsere husker måske, at vi brugte curl -O-kommandoen, da vi forklarede, hvordan man udtrækker det faktiske lydindhold fra en m3u-streamingfil.

Begynder enhver download med curl viser den overførte procentdel, tid brugt på download og resterende tid samt overførselshastigheden.

Skærmbilledet giver en bedre repræsentation end det indsatte eksempel nedenfor, men det ser nogenlunde sådan ud:

… --:--:-- --:--:-- 142k

Med overførselshastighed, der viser, kan du omdirigere outputtet af curl til /dev/null og bruge det til at teste internetforbindelseshastigheden, men wget-kommandoen har en lettere at læse og følge overførselslinjen, så wget er bedre velegnet til den opgave.

Gemmer en ekstern fil med et andet navn med curl -o

Brug af et lille -o-flag vil give dig mulighed for at angive et andet filnavn for den downloadede fil, end hvordan den er navngivet på fjernserveren. Dette kan være nyttigt for at reducere lange filnavne eller bare mærke noget, så det er nemmere at finde på egen hånd. Den generelle syntaks ville være:

curl -o

For eksempel, hvis du vil gemme en iOS IPSW-fil, som du fandt opført på Apple-servere uden at have det lange fulde navn, kan du bruge følgende:

curl -o iPhone5C-704.ipsw http://appldnld.apple.com/iOS7/031-1828.20131114.P3wE4/iPhone5, 3_7.0.4_11B554a_Restore.ips

Dette vil downloade filen "iPhone5, 3_7.0.4_11B554a_Restore.ipsw", men navngivet kortere som den mere meningsfulde "iPhone5C-704.ipsw".

Hvis du hellere ikke vil gemme filen i den nuværende arbejdsmappe, skal du angive en sti som en del af filnavnet som sådan:

curl -o ~/Desktop/localexample.dmg http://url-to-file/example.dmg

Download af flere filer samtidigt med curl

cURL kan nemt downloade flere filer på samme tid, alt du skal gøre er at angive mere end én URL som f.eks.:

curl -O

For filer med forskellige navne eller hostet på forskellige servere eller inden for forskellige biblioteksstier skal du bruge den komplette URL, f.eks.:

curl -O http://ftp.gnu.org/gnu/Licenses/fdl-1.1.txt http://ftp.gnu.org/gnu/ Licenser/lgpl-2.1.txt http://ftp.gnu.org/gnu/GNUinfo/Audio/index.txt

På den anden side, hvis filnavnene, der skal downloades, bruger trinvis navngivning, kan du bruge parenteser til at angive et downloadområde, som f.eks.:

curl -O http://ftp.gnu.org/gnu/Licenses/fd1-1.txt

Dette ville gribe filerne fdl-1.1.txt, fd1-1.2.txt og fd1-1.3.txt alle på samme tid uden at skulle angive hver unik URL. Dette virker selvfølgelig kun, hvis filerne er i samme mappe sammen og på samme domæne.

Godkender med krøll

Du kan også bestå godkendelse med cURL ved at bruge flaget -u:

curl -u user:pass -O ftp://remote_url/file-to-download.zip

Husk på, at bash-historikken gemmer adgangskoden i almindelig tekst, når du bruger -u med et angivet brugernavn og adgangskode, så dette anbefales ikke i de fleste situationer. Det kan du komme uden om ved at placere et mellemrum foran 'curl'.Hvis du ikke bruger mellemrumstasten til at foranstille kommandoen, vil du sandsynligvis tømme kommandohistorikken bagefter for at være sikker.

Understøttede curl-protokoller og brug ud over HTTP og FTP

Som tidligere nævnt går cURL-brug langt ud over HTTP og FTP, da indtastningen af ​​curl-manualen nævner yderligere protokoller i beskrivelsen:

Derudover vil du opdage, at curl også kan bruges til PUT- og POST-anmodninger, cookies, proxyer, tunneler, genoptage downloads og endda at få fat i HTTP-headeroplysninger eller ændre en brugeragent (effektivt spoofing) uden behov for at bruge en dedikeret webbrowser.

Som de fleste kommandolinjeværktøjer kan du lære meget mere om curl ved at tilkalde den relevante man-side med kommandoen 'man curl'.

Brug af cURL til at downloade fjernfiler fra kommandolinjen