Použitie cURL na stiahnutie vzdialených súborov z príkazového riadku
Obsah:
- Stiahnuť súbory s presnou zhodou s curl -O
- Uloženie vzdialeného súboru s iným názvom pomocou curl -o
- Sťahovanie viacerých súborov súčasne pomocou curl
Výkonný nástroj príkazového riadka curl možno použiť na sťahovanie súborov z takmer akéhokoľvek vzdialeného servera. Dlhoroční používatelia príkazového riadka vedia, že to môže byť užitočné v najrôznejších situáciách, ale aby boli veci jednoduché, mnohí zistia, že sťahovanie súboru s curl môže byť často rýchlejšou alternatívou k používaniu webového prehliadača alebo FTP klienta zo strany GUI. Mac OS X (alebo linux).Je to užitočné pre miestne situácie, ale je to obzvlášť dôležité, ak ste v situácii, keď potrebujete stiahnuť niečo do vzdialeného Macu pri pripojení cez SSH.
Na účely tohto návodu sa zameriame predovšetkým na sťahovanie súborov z dvoch bežne používaných protokolov HTTP a SFTP, aj keď treba poznamenať, že cURL podporuje oveľa viac protokolov. Hoci sa curl ľahko používa, odporúča sa mať určité znalosti o príkazovom riadku.
Stiahnuť súbory s presnou zhodou s curl -O
Použitie veľkého znaku -O s curl stiahne súbor zo vzdialeného servera pri zachovaní presného názvu súboru, základná syntax je nasledovná:
kučeravá -O
To znamená, že ak má zadaný súbor URL názov „sample.zip“, stiahne sa s názvom súboru „sample.zip“ a ak je súbor nazvaný niečo obrovské a komplikované, napríklad „LongExampleFileNameForOSXDaily-v- 1-3-51-revision-515b12-readme.txt“ na vzdialenom serveri, uloží sa pod týmto presným názvom na lokálnom počítači. S dlhšími názvami súborov je často lepšie zaobchádzať s príznakom -o ako s príznakom -O, ktorému sa čoskoro budeme venovať.
Bežní čitatelia si možno spomenú, že sme použili príkaz curl -O pri vysvetľovaní, ako extrahovať skutočný zvukový obsah zo súboru streamovaného m3u.
Začiatok akéhokoľvek sťahovania pomocou curl zobrazuje prenesené percento, čas strávený sťahovaním a zostávajúci čas a rýchlosť prenosu.
Snímka obrazovky ponúka lepšie znázornenie ako prilepený príklad nižšie, ale vyzerá asi takto:
% Celkom % prijatých % Xferd Priemerná rýchlosť Čas Čas Čas Aktuálne predĺženie Odovzdanie Celková vynaložená rýchlosť Zostávajúca rýchlosť 100 10505 100 10505 0 0 79741 0 --:--:-- --:--:-- --:--:-- 142 k
Keď sa ukazuje prenosová rýchlosť, môžete presmerovať výstup curl na /dev/null a použiť ho na testovanie rýchlosti internetového pripojenia, ale príkaz wget je ľahšie čitateľný a sleduje prenosový pruh, takže wget je lepší vhodné na túto úlohu.
Uloženie vzdialeného súboru s iným názvom pomocou curl -o
Použitie malého znaku -o vám umožní zadať pre stiahnutý súbor iný názov, než ako je pomenovaný na vzdialenom serveri. Môže to byť užitočné na skrátenie zdĺhavých názvov súborov alebo len na označenie niečoho, aby ste ho ľahšie našli sami. Všeobecná syntax by bola:
curl -o
Ak chcete napríklad uložiť súbor IPSW pre iOS, ktorý ste našli uvedený na serveroch Apple, bez dlhého celého názvu, môžete použiť nasledovné:
curl -o iPhone5C-704.ipsw http://appldnld.apple.com/iOS7/031-1828.20131114.P3wE4/iPhone5, 3_7.0.4_11B554a_Restore.ipsw_Restore.
Týmto sa stiahne súbor „iPhone5, 3_7.0.4_11B554a_Restore.ipsw“, ale pomenovaný bude kratší ako zmysluplnejší „iPhone5C-704.ipsw“.
Ak nechcete súbor uložiť do aktuálneho pracovného adresára, zadajte cestu ako súčasť názvu súboru takto:
curl -o ~/Desktop/localexample.dmg http://url-to-file/example.dmg
Sťahovanie viacerých súborov súčasne pomocou curl
cURL dokáže jednoducho stiahnuť viacero súborov súčasne, všetko, čo musíte urobiť, je zadať viac ako jednu adresu URL, napríklad:
kučeravá -O
Pre súbory s rôznymi názvami alebo hostené na rôznych serveroch alebo v rámci rôznych ciest k adresárom použite úplnú adresu URL, napríklad:
curl -O http://ftp.gnu.org/gnu/Licenses/fdl-1.1.txt http://ftp.gnu.org/gnu/ Licencie/lgpl-2.1.txt http://ftp.gnu.org/gnu/GNUinfo/Audio/index.txt
Na druhej strane, ak názvy súborov na stiahnutie používajú prírastkové pomenovanie, môžete použiť zátvorky na určenie rozsahu sťahovania, napríklad:
curl -O http://ftp.gnu.org/gnu/Licenses/fd1-1.txt
Toto by stiahlo súbory fdl-1.1.txt, fd1-1.2.txt a fd1-1.3.txt všetky naraz bez toho, aby ste museli špecifikovať každú jedinečnú adresu URL. Samozrejme to funguje iba vtedy, ak sú súbory v rovnakom adresári spolu a na rovnakej doméne.
Autentifikácia pomocou curl
Autentifikácia pomocou cURL môžete prejsť aj pomocou príznaku -u:
curl -u user:pass -O ftp://remote_url/file-to-download.zip
Majte na pamäti, že história bash uloží heslo ako obyčajný text, keď použijete -u so zadaným užívateľským menom a heslom, preto sa to vo väčšine situácií neodporúča. Môžete to obísť umiestnením medzery pred „kaderu“.Ak na predponu príkazu nepoužívate medzerník, pravdepodobne budete chcieť neskôr pre istotu vyprázdniť históriu príkazov.
Podporované protokoly curl a použitie nad rámec HTTP a FTP
Ako už bolo spomenuté, použitie cURL ďaleko presahuje HTTP a FTP, pretože záznam manuálovej stránky curl uvádza v popise ďalšie protokoly:
Okrem toho zistíte, že curl možno použiť aj pre požiadavky PUT a POST, súbory cookie, servery proxy, tunely, obnovenie sťahovania a dokonca aj získanie informácií z hlavičky HTTP alebo zmenu používateľského agenta (efektívne spoofing) bez potreby použitia špeciálneho webového prehliadača.
Rovnako ako väčšina nástrojov príkazového riadka sa o curl môžete dozvedieť oveľa viac, keď vyvoláte príslušnú manuálovú stránku pomocou príkazu „man curl“.