Ús de cURL per descarregar fitxers remots des de la línia d'ordres
Taula de continguts:
- Descarregueu fitxers de concordança exacta amb curl -O
- Desar un fitxer remot amb un nom diferent amb curl -o
- Descàrrega de diversos fitxers simultàniament amb curl
La potent eina de línia d'ordres curl es pot utilitzar per descarregar fitxers des de gairebé qualsevol servidor remot. Els usuaris de la línia d'ordres de llarga data saben que això pot ser útil per a una gran varietat de situacions, però per simplificar les coses, molts trobaran que descarregar un fitxer amb curl sovint pot ser una alternativa més ràpida que utilitzar un navegador web o un client FTP des de la GUI de Mac OS X (o Linux).Això és útil per a situacions locals, però té un valor particular si et trobes en una situació en què necessites descarregar alguna cosa a un Mac remot quan estàs connectat mitjançant SSH.
Per als propòsits d'aquesta guia, ens centrarem principalment a baixar fitxers dels dos protocols HTTP i SFTP que es troben habitualment, tot i que cal tenir en compte que cURL admet molts més protocols. Tot i que curl és fàcil d'utilitzar, es recomana tenir algun coneixement de la línia d'ordres.
Descarregueu fitxers de concordança exacta amb curl -O
L'ús de la bandera -O majúscula amb curl baixa el fitxer del servidor remot mantenint el nom exacte del fitxer, la sintaxi bàsica per a això és la següent:
curl -O
Això vol dir que si el fitxer URL especificat s'anomena “sample.zip” es baixarà amb el nom de fitxer “sample.zip”, i si el fitxer s'anomena quelcom enorme i complicat com “LongExampleFileNameForOSXDaily-v- 1-3-51-revisió-515b12-llegiu-me.txt” al servidor remot, es desarà amb aquest nom exacte a la màquina local. Sovint, els noms de fitxers més llargs es gestionen millor amb el senyalador -o que no pas amb -O, que tractarem en breu.
Els lectors habituals poden recordar que hem utilitzat l'ordre curl -O quan explicàvem com extreure el contingut d'àudio real d'un fitxer de streaming m3u.
Començar qualsevol descàrrega amb curl mostra el percentatge transferit, el temps dedicat a la descàrrega i el temps restant, i la velocitat de transferència.
La captura de pantalla ofereix una millor representació que l'exemple enganxat a continuació, però sembla una cosa així:
% Total % rebut % Xferd Velocitat mitjana Temps Temps Descàrrega actual Carrega Total gastat Velocitat esquerra 100 10505 100 10505 0 0 79741 0 --:--:-- --:--:-- --:--:-- 142k
Amb la velocitat de transferència que mostra, podeu redirigir la sortida de curl a /dev/null i utilitzar-la per provar la velocitat de connexió a Internet, però l'ordre wget té una barra de transferència més fàcil de llegir i seguir, de manera que wget és millor adequat per a aquesta tasca.
Desar un fitxer remot amb un nom diferent amb curl -o
L'ús d'un senyalador -o en minúscula us permetrà especificar un nom de fitxer diferent per al fitxer descarregat de com s'anomena al servidor remot. Això pot ser útil per reduir noms de fitxer llargs o simplement etiquetar alguna cosa perquè sigui més fàcil de trobar pel vostre compte. La sintaxi general seria:
curl -o
Per exemple, si voleu desar un fitxer IPSW d'iOS que heu trobat a la llista als servidors d'Apple sense tenir el nom complet llarg, podeu utilitzar el següent:
curl -o iPhone5C-704.ipsw http://appldnld.apple.com/iOS7/031-1828.20131114.P3wE4/iPhone5, 3_7.0.4_11B554a_Restore.ips
Això baixarà el fitxer “iPhone5, 3_7.0.4_11B554a_Restore.ipsw”, però anomenat més curt com el més significatiu “iPhone5C-704.ipsw”.
Si preferiu no desar el fitxer al directori de treball actual, especifiqueu una ruta com a part del nom del fitxer com a continuació:
curl -o ~/Desktop/localexample.dmg http://url-to-file/example.dmg
Descàrrega de diversos fitxers simultàniament amb curl
cURL pot descarregar fàcilment diversos fitxers al mateix temps, tot el que heu de fer és especificar més d'un URL així:
curl -O
Per a fitxers amb noms diferents, allotjats en servidors diferents o dins de camins de directoris diferents, utilitzeu l'URL complet, per exemple:
curl -O http://ftp.gnu.org/gnu/Licenses/fdl-1.1.txt http://ftp.gnu.org/gnu/ Llicències/lgpl-2.1.txt http://ftp.gnu.org/gnu/GNUinfo/Audio/index.txt
D' altra banda, si els noms dels fitxers que s'han de baixar utilitzen noms incrementals, podeu utilitzar claudàtors per especificar un interval de descàrrega, com ara:
curl -O http://ftp.gnu.org/gnu/Licenses/fd1-1.txt
Això agafaria els fitxers fdl-1.1.txt, fd1-1.2.txt i fd1-1.3.txt alhora sense haver d'especificar cada URL únic. Per descomptat, això només funciona si els fitxers es troben al mateix directori junts i al mateix domini.
Autenticació amb curl
També podeu passar l'autenticació amb cURL utilitzant el senyalador -u:
curl -u user:pass -O ftp://remote_url/file-to-download.zip
Tingueu en compte que l'historial de bash emmagatzemarà la contrasenya en text sense format quan utilitzeu -u amb un nom d'usuari i una contrasenya especificats, per la qual cosa no es recomana per a la majoria de situacions. Podeu evitar-ho col·locant un espai davant de "rínxol".Si no feu servir la barra espaiadora per prefixar l'ordre, probablement voldreu buidar l'historial d'ordres després per estar segur.
Protocols curl admesos i ús més enllà d'HTTP i FTP
Com s'ha esmentat anteriorment, l'ús de cURL va molt més enllà d'HTTP i FTP, ja que l'entrada manual de la pàgina curl esmenta protocols addicionals a la descripció:
A més, trobareu que curl també es pot utilitzar per a sol·licituds PUT i POST, galetes, servidors intermediaris, túnels, reprendre descàrregues i fins i tot agafar informació de la capçalera HTTP o canviar un agent d'usuari (falsificació efectiva) sense necessitat d'utilitzar un navegador web dedicat.
Com la majoria de les utilitats de línia d'ordres, podeu aprendre molt més sobre curl convocant la pàgina de manual adequada amb l'ordre 'man curl'.