Naudojant cURL, norint atsisiųsti nuotolinius failus iš komandų eilutės

Turinys:

Anonim

Galingas curl komandinės eilutės įrankis gali būti naudojamas failams atsisiųsti iš beveik bet kurio nuotolinio serverio. Ilgalaikiai komandinės eilutės naudotojai žino, kad tai gali būti naudinga įvairiose situacijose, tačiau norint, kad viskas būtų paprasta, daugelis pastebės, kad failo su curl atsisiuntimas dažnai gali būti greitesnė alternatyva naudojant žiniatinklio naršyklę arba FTP klientą iš GUI pusės. „Mac OS X“ (arba „Linux“).Tai naudinga vietinėse situacijose, tačiau tai ypač naudinga, jei turite ką nors atsisiųsti į nuotolinį „Mac“, kai esate prisijungę per SSH.

Šios apžvalgos tikslais daugiausia dėmesio skirsime failų atsisiuntimui iš dviejų dažniausiai naudojamų HTTP ir SFTP protokolų, tačiau reikia pažymėti, kad cURL palaiko daug daugiau protokolų. Nors curl naudoti paprasta, rekomenduojama šiek tiek išmanyti komandų eilutę.

Atsisiųsti tikslios atitikties failus su curl -O

Naudojant didžiųjų raidžių -O žymą su curl, failas atsisiunčiamas iš nuotolinio serverio, išlaikant tikslų failo pavadinimą, pagrindinė sintaksė yra tokia:

garbana -O

Tai reiškia, kad jei nurodytas URL failas pavadintas „sample.zip“, jis bus atsisiųstas pavadinimu „sample.zip“, o jei failas bus pavadintas didžiuliu ir sudėtingu, pvz., „LongExampleFileNameForOSXDaily-v- 1-3-51-revision-515b12-readme.txt“ nuotoliniame serveryje, jis išsaugos tuo tiksliu pavadinimu vietiniame kompiuteryje. Ilgesni failų pavadinimai dažnai geriau tvarkomi naudojant žymą -o, o ne -O, kurią netrukus aptarsime.

Paprasti skaitytojai gali prisiminti, kad aiškindami, kaip išgauti tikrąjį garso turinį iš m3u srautinio perdavimo failo, naudojome komandą curl -O.

Bet kurį atsisiuntimą pradedant curl rodomas perduotas procentas, atsisiuntimo laikas ir likęs laikas bei perdavimo greitis.

Ekrano kopijoje pateikiamas geresnis vaizdas nei toliau pateiktame įklijuotame pavyzdyje, bet ji atrodo maždaug taip:

Nr. --:--:-- --:--:-- 142k

Kai rodomas perdavimo greitis, galite nukreipti curl išvestį į /dev/null ir naudoti ją interneto ryšio greičiui patikrinti, tačiau komanda wget turi lengviau skaitomą ir sekamą perdavimo juostą, todėl wget yra geresnė tinka tai užduočiai.

Nuotolinio failo įrašymas kitu pavadinimu su curl -o

Naudodami mažųjų raidžių -o vėliavėlę, galėsite nurodyti atsisiųstam failui kitokį failo pavadinimą, nei jis pavadintas nuotoliniame serveryje. Tai gali būti naudinga norint sumažinti ilgus failų pavadinimus arba tiesiog pažymėti ką nors, kad būtų lengviau juos rasti. Bendra sintaksė būtų tokia:

curl -o

Pavyzdžiui, jei norite išsaugoti „iOS IPSW“ failą, kurį radote „Apple“ serveriuose, neturėdami ilgo viso pavadinimo, galite naudoti:

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

Bus atsisiųstas failas „iPhone5, 3_7.0.4_11B554a_Restore.ipsw“, bet trumpesnis kaip prasmingesnis „iPhone5C-704.ipsw“.

Jei nenorite išsaugoti failo dabartiniame darbiniame kataloge, nurodykite kelią kaip failo pavadinimo dalį, pvz.:

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

Kelių failų atsisiuntimas kartu su curl

cURL gali lengvai atsisiųsti kelis failus vienu metu, tereikia nurodyti daugiau nei vieną URL, pvz.:

garbana -O

Failams su skirtingais pavadinimais arba priglobtais skirtinguose serveriuose arba skirtinguose katalogų keliuose naudokite visą URL, pvz.:

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

Kita vertus, jei atsisiunčiamų failų pavadinimai suteikia laipsnišką pavadinimą, galite naudoti skliaustus, kad nurodytumėte atsisiuntimo diapazoną, pvz.:

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

Tai patrauktų failus fdl-1.1.txt, fd1-1.2.txt ir fd1-1.3.txt tuo pačiu metu, nenurodant kiekvieno unikalaus URL. Žinoma, tai veikia tik tuo atveju, jei failai yra tame pačiame kataloge ir tame pačiame domene.

Autentifikavimas naudojant garbanę

Autentifikavimą taip pat galite perduoti naudodami cURL naudodami žymą -u:

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

Atminkite, kad bash istorija slaptažodis bus saugomas paprastu tekstu, kai naudosite -u su nurodytu vartotojo vardu ir slaptažodžiu, todėl tai nerekomenduojama daugeliu atvejų. Tai galite padaryti įdėję tarpą priešais „garbaną“.Jei nenaudojate tarpo klavišo komandos priešdėliui, tikriausiai norėsite po to ištuštinti komandų istoriją, kad būtumėte saugūs.

Palaikomi garbanojimo protokolai ir naudojimas be HTTP ir FTP

Kaip minėta anksčiau, cURL naudojimas gerokai viršija HTTP ir FTP, nes rankinio puslapio įraše apraše minimi papildomi protokolai:

Be to, pastebėsite, kad curl taip pat gali būti naudojamas PUT ir POST užklausoms, slapukams, tarpiniams serveriams, tuneliams, atsisiuntimų atnaujinimui ir netgi HTTP antraštės informacijos gavimui arba vartotojo agento keitimui (veiksmingai klastojimui) nereikia naudoti tam skirtos interneto naršyklės.

Kaip ir dauguma komandų eilutės paslaugų, galite sužinoti daug daugiau apie curl, iškvietę atitinkamą žmogaus puslapį su komanda „man curl“.

Naudojant cURL, norint atsisiųsti nuotolinius failus iš komandų eilutės