Uporaba cURL za prenos oddaljenih datotek iz ukazne vrstice

Kazalo:

Anonim

Zmogljivo orodje ukazne vrstice curl lahko uporabite za prenos datotek s skoraj katerega koli oddaljenega strežnika. Dolgoletni uporabniki ukazne vrstice vedo, da je to lahko uporabno v najrazličnejših situacijah, a da bi stvari poenostavili, bodo mnogi ugotovili, da je lahko prenos datoteke s curl pogosto hitrejša alternativa uporabi spletnega brskalnika ali odjemalca FTP s strani GUI Mac OS X (ali linux).To je koristno v lokalnih situacijah, vendar ima posebno vrednost, če ste v situaciji, ko morate nekaj prenesti na oddaljeni Mac, ko ste povezani prek SSH.

Za namene tega koraka se bomo osredotočili predvsem na prenos datotek iz dveh pogosto uporabljenih protokolov HTTP in SFTP, čeprav je treba upoštevati, da cURL podpira veliko več protokolov. Čeprav je curl enostaven za uporabo, je priporočljivo nekaj znanja o ukazni vrstici.

Prenos datotek z natančnim ujemanjem s curl -O

Uporaba zastavice z velikimi črkami -O s curl prenese datoteko z oddaljenega strežnika, medtem ko ohrani točno ime datoteke, osnovna sintaksa za to je naslednja:

curl -O

To pomeni, da se bo določena datoteka URL imenovala »sample.zip«, se bo prenesla z imenom datoteke »sample.zip«, če pa je datoteka poimenovana nekaj ogromnega in zapletenega, kot je »LongExampleFileNameForOSXDaily-v- 1-3-51-revizija-515b12-readme.txt« na oddaljenem strežniku, bo shranil s tem natančnim imenom na lokalnem računalniku. Z daljšimi imeni datotek je pogosto bolje ravnati z zastavico -o kot z -O, ki jo bomo obravnavali v kratkem.

Redni bralci se morda spomnijo, da smo uporabili ukaz curl -O, ko smo razlagali, kako ekstrahirati dejansko zvočno vsebino iz pretočne datoteke m3u.

Začetek katerega koli prenosa s curl prikazuje odstotek prenesenega, čas, porabljen za prenos in preostali čas ter hitrost prenosa.

Posnetek zaslona nudi boljšo predstavitev kot spodnji prilepljeni primer, vendar je videti nekako takole:

% Skupaj % Prejeto % Xferd Povprečna hitrost Čas Čas Čas Trenutni Dload Nalaganje Skupna porabljena preostala hitrost 100 10505 100 10505 0 0 79741 0 --:--:-- --:--:-- --:--:-- 142k

Če je prikazana hitrost prenosa, bi lahko preusmerili izhod curl v /dev/null in ga uporabili za testiranje hitrosti internetne povezave, vendar ima ukaz wget enostavnejšo berljivo vrstico za prenos in sledenje, zato je wget boljši primeren za to nalogo.

Shranjevanje oddaljene datoteke z drugim imenom s curl -o

Uporaba zastavice z malimi črkami -o vam bo omogočila, da za preneseno datoteko določite drugačno ime od tistega, ki je poimenovano na oddaljenem strežniku. To je lahko koristno za zmanjšanje dolgih imen datotek ali samo za označitev, da jih boste lažje našli sami. Splošna sintaksa bi bila:

curl -o

Če želite na primer shraniti datoteko iOS IPSW, ki ste jo našli na seznamu v strežnikih Apple brez dolgega polnega imena, lahko uporabite naslednje:

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

To bo preneslo datoteko »iPhone5, 3_7.0.4_11B554a_Restore.ipsw«, vendar poimenovano krajše kot bolj smiselno »iPhone5C-704.ipsw«.

Če raje ne želite shraniti datoteke v trenutni delovni imenik, podajte pot kot del imena datoteke, takole:

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

Hkratno prenašanje več datotek s curl

cURL lahko preprosto prenese več datotek hkrati, vse kar morate storiti je, da podate več kot en URL, takole:

curl -O

Za datoteke z različnimi imeni, ki gostujejo na različnih strežnikih ali znotraj različnih poti imenika, uporabite celoten URL, na primer:

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

Po drugi strani pa, če imena datotek, ki jih želite prenesti, uporabljajo inkrementalno poimenovanje, lahko uporabite oklepaje, da določite obseg prenosa, na primer:

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

To bi zagrabilo datoteke fdl-1.1.txt, fd1-1.2.txt in fd1-1.3.txt vse hkrati, ne da bi bilo treba navesti vsak edinstven URL. Seveda to deluje samo, če so datoteke skupaj v istem imeniku in na isti domeni.

Preverjanje pristnosti s curl

Preverjanje pristnosti s cURL lahko posredujete tudi z uporabo zastavice -u:

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

Upoštevajte, da bo zgodovina bash shranila geslo v navadnem besedilu, ko uporabljate -u z navedenim uporabniškim imenom in geslom, zato to ni priporočljivo v večini primerov. Temu se lahko izognete tako, da postavite presledek pred »curl«.Če ne uporabite preslednice za predpono ukaza, boste verjetno želeli pozneje izprazniti zgodovino ukazov, da boste varni.

Podprti curl protokoli in uporaba zunaj HTTP in FTP

Kot smo že omenili, uporaba cURL daleč presega HTTP in FTP, saj vnos na priročni strani curl v opisu omenja dodatne protokole:

Poleg tega boste ugotovili, da se curl lahko uporablja tudi za zahteve PUT in POST, piškotke, posrednike, tunele, nadaljevanje prenosov in celo zajemanje informacij o glavi HTTP ali spreminjanje uporabniškega agenta (dejansko lažno predstavljanje). brez potrebe po uporabi namenskega spletnega brskalnika.

Tako kot večina pripomočkov ukazne vrstice lahko o curl izveste veliko več tako, da prikličete ustrezno stran z navodili z ukazom 'man curl'.

Uporaba cURL za prenos oddaljenih datotek iz ukazne vrstice