curl es una herramienta de línea de comandos para transferir datos hacia o desde un servidor, utilizando cualquiera de los protocolos admitidos (HTTP, FTP, IMAP, POP3, SCP, SFTP, SMTP, TFTP, TELNET, LDAP o FILE). curl funciona con Libcurl. Esta herramienta es la preferida para la automatización, ya que está diseñada para funcionar sin la interacción del usuario. curl puede transferir varios archivos a la vez.
Sintaxis:
curl [options] [URL...]
URL : el uso más básico de curl es escribir el comando seguido de la URL.
curl https://www.geeksforgeeks.org
Esto debería mostrar el contenido de la URL en el terminal. La sintaxis de URL depende del protocolo y se pueden escribir varias URL como conjuntos como:
curl http://site.{one, two, three}.com
Las URL con series de secuencias numéricas se pueden escribir como:
curl ftp://ftp.example.com/file[1-20].jpeg
Medidor de progreso: curl muestra un medidor de progreso durante el uso para indicar la velocidad de transferencia, la cantidad de datos transferidos, el tiempo restante, etc.
curl -# -O ftp://ftp.example.com/file.zip curl --silent ftp://ftp.example.com/file.zip
Si prefiere una barra de progreso en lugar de un medidor, puede usar la opción -# como en el ejemplo anterior, o -silent si desea desactivarla por completo.
Ejemplo:
Opciones:
-o: guarda el archivo descargado en la máquina local con el nombre proporcionado en los parámetros.
Sintaxis:
curl -o [file_name] [URL...]
- Ejemplo:
curl -o hello.zip ftp://speedtest.tele2.net/1MB.zip
- Producción:
- El ejemplo anterior descarga el archivo del servidor FTP y lo guarda con el nombre hello.zip .
-O: Esta opción descarga el archivo y lo guarda con el mismo nombre que en la URL.
Sintaxis:
curl -O [URL...]
- Ejemplo:
curl -O ftp://speedtest.tele2.net/1MB.zip
- Producción:
-C -: Esta opción reanuda la descarga que se ha detenido por algún motivo. Esto es útil cuando se interrumpe la descarga de archivos grandes.
Sintaxis:
curl -C - [URL...]
- Ejemplo:
curl -C - -O ftp://speedtest.tele2.net/1MB.zip
- Producción:
–limit-rate: esta opción limita el límite superior de la tasa de transferencia de datos y lo mantiene alrededor del valor dado en bytes.
Sintaxis:
curl --limit-rate [value] [URL]
- Ejemplo:
curl --limit-rate 1000K -O ftp://speedtest.tele2.net/1MB.zip
- Producción:
- El comando limita la descarga a 1000K bytes.
-u: curl también proporciona opciones para descargar archivos desde servidores FTP autenticados por el usuario.
Sintaxis:
curl -u {username}:{password} [FTP_URL]
- Ejemplo:
curl -u demo:password -O ftp://test.rebex.net/readme.txt
- Producción:
-T: Esta opción ayuda a subir un archivo al servidor FTP.
Sintaxis:
curl -u {username}:{password} -T {filename} {FTP_Location}
- Si desea agregar un archivo FTP ya existente, puede usar la opción -a o -append .
–libcurl: esta opción es muy útil desde la perspectiva de un desarrollador. Si esta opción se agrega a cualquier comando cURL, genera el código fuente C que usa libcurl para la opción especificada. Es un código similar a la implementación de la línea de comandos.
Sintaxis:
curl [URL...] --libcurl [filename]
- Ejemplo:
curl https://www.geeksforgeeks.org > log.html --libcurl code.c
- Producción:
- El ejemplo anterior descarga el HTML y lo guarda en log.html y el código en el archivo code.c. El siguiente comando muestra las primeras 30 líneas del código.
-x, –proxy: curl también nos permite usar un proxy para acceder a la URL.
Sintaxis:
curl -x [proxy_name]:[port] [URL...]
- Si el proxy requiere autenticación, se puede usar con el comando:
curl -u [user]:[password] -x [proxy_name]:[port] [URL...]
Envío de correo: como curl puede transferir datos a través de diferentes protocolos, incluido SMTP, podemos usar curl para enviar correos.
Sintaxis:
curl –url [SMTP URL] –mail-from [sender_mail] –mail-rcpt [receiver_mail] -n –ssl-reqd -u {email}:{password} -T [Mail text file]
Protocolo DICT: Libcurl define el protocolo DICT que se puede utilizar para obtener fácilmente la definición o el significado de cualquier palabra directamente desde la línea de comandos.
Sintaxis:
curl [protocol:[dictionary_URL]:[word]
- Ejemplo:
curl dict://dict.org/d:overclock
- Producción:
Nota: Hay una serie de otras opciones proporcionadas por cURL que se pueden consultar en la página principal. La biblioteca libcurl se ha portado a varios lenguajes de programación. Es aconsejable visitar el sitio del proyecto individual para la documentación.