Introducción
La transferencia de datos hacia y desde un servidor requiere herramientas que admitan los protocolos de red necesarios. Linux tiene múltiples herramientas creadas para este propósito, las más populares son curl y wget.
Este tutorial le mostrará cómo usar el curl
comando y le proporcionará una lista exhaustiva de las opciones disponibles.
Requisitos previos
- Acceso a la terminal
- Acceso a Internet
- rizo instalado
¿Qué es el comando curl?
curl
(abreviatura de "URL de cliente") es una herramienta de línea de comandos que permite la transferencia de datos a través de varios protocolos de red. Se comunica con un servidor web o de aplicaciones especificando una URL relevante y los datos que deben enviarse o recibirse.
curl
funciona con libcurl, una biblioteca portátil de transferencia de URL del lado del cliente. Puede usarlo directamente en la línea de comandos o incluirlo en un script. Los casos de uso más comunes para curl
son:
- Descargar archivos de Internet
- Pruebas de punto final
- Depuración
- Registro de errores
sintaxis de curl
El curl
básico la sintaxis es la siguiente:
curl [options/URLs]
Por ejemplo:
curl https://www.gnu.org/gnu/gnu.html
El sistema genera los contenidos HTML que se encuentran en la URL proporcionada después de curl
comando.
Si especifica una URL que lleva a un archivo, puede usar curl
para descargar el archivo a su sistema local:
curl [url] > [local-file]
La barra de progreso muestra cuánto del archivo se ha descargado hasta el momento.
La sintaxis de las URL que forman parte del comando depende del protocolo. Varias URL que difieren en una parte se escriben juntas usando llaves:
http://example.{first,second,third}.com
Las series alfanuméricas se escriben con corchetes:
ftp://ftp.url.com/file[1-100].txt
Si bien las secuencias anidadas no son compatibles, se permiten múltiples secuencias:
http://url.com/archive[2010-2020]/vol[1-4]/part{a,b,c}.html
Protocolos curl
curl admite numerosos protocolos para la transferencia de datos. Encuentra la lista completa a continuación.
Protocolo | Descripción |
---|---|
DICT | Un protocolo de red de diccionarios para consultar a los servidores de diccionarios sobre el significado de las palabras. |
ARCHIVO | Un esquema de URL para obtener un archivo del sistema de archivos local usando curl. |
FTP, FTPS | Protocolo de transferencia de archivos, utilizado para transferencias de archivos entre clientes y servidores. FTPS es la versión del mismo protocolo con una capa de seguridad SSL/TLS añadida. |
GOFRES, GOFERES | Antiguo protocolo para buscar, recuperar y distribuir documentos de Internet, un precursor de HTTP. GOPHERS es la versión del mismo protocolo con una capa de seguridad SSL/TLS añadida. |
HTTP, HTTPS | Protocolo de transferencia de hipertexto, utilizado para la transferencia de datos web e Internet. HTTPS es la versión del mismo protocolo con una capa de seguridad SSL/TLS adicional. |
IMAP, IMAPS | Protocolo de acceso a mensajes de Internet, utilizado para el acceso y la gestión del correo electrónico. IMAPS es la versión del mismo protocolo con una capa de seguridad SSL/TLS adicional. |
LDAP, LDAPS | Protocolo ligero de acceso a directorios, utilizado para el acceso y la administración de información de directorios distribuidos. LDAPS es la versión del mismo protocolo con una capa de seguridad SSL/TLS añadida. |
MQTT | Message Queuing Telemetry Transport:un protocolo para el intercambio de datos entre dispositivos pequeños, generalmente sistemas IoT. |
POP3, POP3S | Protocolo de oficina de correos versión 3:un protocolo para la recuperación de correo electrónico desde un servidor. POP3S es la versión del mismo protocolo con una capa de seguridad SSL/TLS añadida. |
RTMP | Protocolo de mensajería en tiempo real:un protocolo de transmisión de audio, video y otros datos. |
RTSP | Protocolo de transmisión en tiempo real, utilizado para la administración de servidores de transmisión de medios. |
SCP | Copia segura:un protocolo para copiar archivos hacia y desde un servidor SSH. |
SFTP | Protocolo de transferencia de archivos SSH:una versión del Protocolo de transferencia de archivos que utiliza la conexión SSH. |
PYMES, PYMES | Server Message Block:un protocolo para administrar el acceso compartido a archivos y periféricos de computadora. SMBS es la versión del mismo protocolo con una capa de seguridad SSL/TLS adicional. |
SMTP, SMPTS | Protocolo simple de transferencia de correo:un protocolo de correo electrónico para facilitar la transmisión de correo electrónico. SMTPS es la versión del mismo protocolo con una capa de seguridad SSL/TLS añadida. |
TELNET | Un protocolo de capa de aplicación para comunicación interactiva bidireccional orientada a texto. |
TFTP | Protocolo trivial de transferencia de archivos, utilizado para cargar o descargar archivos hacia o desde un host remoto. |
Opción | Descripción |
---|---|
--abstract-unix-socket <path> | Conéctese a través de un socket Unix abstracto en lugar de a través de una red. Ejemplo: curl --abstract-unix-socket socketpath https://example.com |
--alt-svc <file name> | Habilitar el analizador alt-svc. Ejemplo: curl --alt-svc svc.txt https://example.com |
--anyauth | Curl encuentra y usa el método de autenticación más seguro para la URL HTTP dada. Ejemplo: curl --anyauth --user me:pass https://example.com |
-a, --append | Anexar al archivo de destino. Ejemplo: curl --upload-file local --append ftp://example.com/ |
--aws-sigv4 <provider1[:provider2[:region[:service]]]> | Utilice la autenticación de firma de AWS V4. Ejemplo: curl --aws-sigv4 "aws:amz:east-2:es" --user "key:secret" https://example.com |
--basic | Usar autenticación básica HTTP. Ejemplo: curl -u name:password --basic https://example.com |
--cacert <file> | Utilice el archivo especificado para la verificación del certificado. Ejemplo: curl --cacert CA-file.txt https://example.com |
--capath <dir> | Utilice el directorio especificado para buscar los certificados. Ejemplo: curl --capath /local/directory https://example.com |
--cert-status | Verifique el estado del certificado del servidor. Ejemplo: curl --cert-status https://example.com |
--cert-type <type> | Especifique el tipo de certificado proporcionado. Los tipos reconocidos son PEM (predeterminado), DER , ENG y P12 . Ejemplo: curl --cert-type ENG --cert file https://example.com |
-E, --cert <certificate[:password]> | Utilice el archivo de certificado proporcionado cuando trabaje con un protocolo basado en SSL. Ejemplo: curl --cert certfile --key keyfile https://example.com |
--ciphers <list of ciphers> | Proporcione cifrados que se utilizarán en la conexión. Ejemplo: curl --ciphers ECDHE-ECDSA-AES256-CCM8 https://example.com |
--compressed-ssh | Habilite la compresión SSH integrada. Ejemplo: curl --compressed-ssh sftp://example.com/ |
--compressed | Solicitud para recibir una respuesta comprimida. Ejemplo: curl --compressed https://example.com |
-K, --config <file> | Proporcione un archivo de texto con argumentos curl, en lugar de escribirlos en la línea de comando. Ejemplo: curl --config file.txt https://example.com |
--connect-timeout <fractional seconds> | Especifique el tiempo máximo que puede durar una conexión curl. Ejemplo: curl --connect-timeout 30 https://example.com |
--connect-to <HOST1:PORT1:HOST2:PORT2> | Proporcione una regla de conexión para dirigir las solicitudes a un nodo de clúster de servidor específico. Ejemplo: curl --connect-to example.com:443:example.net:8443 https://example.com |
-C, --continue-at <offset> | Reanude la transferencia de archivos en el desplazamiento especificado. curl -C 400 https://example.com |
-c, --cookie-jar <filename> | Especifique un archivo para almacenar cookies. curl -c store.txt https://example.com |
-b, --cookie <data|filename> | Leer cookies de un archivo. Ejemplo: curl -b cookiefile https://example.com |
--create-dirs | Cree los directorios locales para --output opción. Ejemplo: curl --create-dirs --output local/dir/file https://example.com |
--create-file-mode <mode> | Especifique qué modo establecer al crear el archivo. Ejemplo: curl --create-file-mode 0777 -T localfile sftp://example.com/new |
--crlf | Convertir LF a CRLF. curl --crlf -T file ftp://example.com/ |
--crlfile <file> | Proporcione una lista de revocación de certificados para certificados de pares. curl --crlfile revoke.txt https://example.com |
--curves <algorithm list> | Proporcione curvas para establecer una sesión SSL. Ejemplo: curl --curves X25519 https://example.com |
--data-ascii <data> | Ver -d , --data . Ejemplo: curl --data-ascii @file https://example.com |
--data-binary <data> | Publicar datos como se especifica, sin procesamiento adicional. curl --data-binary @filename https://example.com |
--data-raw <data> | Igual que -d , --data , pero el carácter @ no se trata de forma diferente al resto. curl --data-raw "@[email protected]@" https://example.com |
--data-urlencode <data> | Igual que -d , --data , pero realiza la codificación de URL. Ejemplo: curl --data-urlencode name=val https://example.com |
-d, --data <data> | Envía datos a un servidor HTTP en una solicitud POST. Ejemplo: curl -d "name=curl" https://example.com |
--delegation <LEVEL> | Especifique cuándo se le permite al servidor delegar credenciales. Ejemplo: curl --delegation "always" https://example.com |
--digest | Habilite la autenticación HTTP Digest. Ejemplo: curl -u name:password --digest https://example.com |
--disable-eprt | Deshabilitar los comandos EPRT y LPRT para transferencias FTP activas. Ejemplo: curl --disable-eprt ftp://example.com/ |
--disable-epsv | Deshabilitar EPSV para transferencias FTP pasivas. Ejemplo: curl --disable-epsv ftp://example.com/ |
-q, --disable | Deshabilitar la lectura del archivo de configuración curlrc. curl -q https://example.com |
--disallow-username-in-url | Salga si se le proporciona una URL que contiene un nombre de usuario. Ejemplo: curl --disallow-username-in-url https://example.com |
--dns-interface <interface> | Especifique una interfaz para las solicitudes de DNS salientes. Ejemplo: curl --dns-interface eth0 https://example.com |
--dns-ipv4-addr <address> | Especifique una dirección IPv4 de donde provendrán las solicitudes de DNS. Ejemplo: curl --dns-ipv4-addr 10.1.2.3 https://example.com |
--dns-ipv6-addr <address> | Especifique una dirección IPv6 de donde provendrán las solicitudes de DNS. Ejemplo: curl --dns-ipv6-addr 2a04:4e42::561 https://example.com |
--dns-servers <addresses> | Especifique su propia lista de servidores DNS. Ejemplo: curl --dns-servers 192.168.0.1,192.168.0.2 https://example.com |
--doh-cert-status | --cert-status para DNS sobre HTTPS. Ejemplo: curl --doh-cert-status --doh-url https://doh.server https://example.com |
--doh-insecure | -k , --insecure para DoH. Ejemplo: curl --doh-insecure --doh-url https://doh.server https://example.com |
--doh-url <URL> | Especifique un servidor DoH para la resolución de nombres de host. Ejemplo: curl --doh-url https://doh.server https://example.com |
-D, --dump-header <filename> | Especifique un archivo para escribir encabezados de protocolo. Ejemplo: curl --dump-header store.txt https://example.com |
--egd-file <file> | Proporcione una ruta para el conector EGD. Ejemplo: curl --egd-file /path/here https://example.com |
--engine <name> | Especifique un motor criptográfico OpenSSL. Ejemplo: curl --engine flavor https://example.com |
--etag-compare <file> | Solicite una lectura de ETag de un archivo. Ejemplo: curl --etag-compare etag.txt https://example.com |
--etag-save <file> | Guarde una ETag HTTP en un archivo. Ejemplo: curl --etag-save etag.txt https://example.com |
--expect100-timeout <seconds> | Tiempo de espera máximo para una respuesta de 100 continuaciones. Ejemplo: curl --expect100-timeout 2.5 -T file https://example.com |
--fail-early | Dígale a curl que falle y salga cuando detecte el primer error en la transferencia. Ejemplo: curl --fail-early https://example.com https://two.example |
--fail-with-body | Si el servidor devuelve un error con el código 400 o superior, curl guarda el contenido y devuelve el error 22. Ejemplo: curl --fail-with-body https://example.com |
-f, --fail | Si el servidor devuelve un error, curl falla silenciosamente y devuelve el error 22. Ejemplo: curl --fail https://example.com |
--false-start | Usar inicio en falso en el protocolo de enlace TLS. Ejemplo: curl --false-start https://example.com |
--form-string <name=string> | Similar a -F , --form , pero las cadenas de valor se procesan literalmente. Ejemplo: curl --form-string "data" https://example.com |
-F, --form <name=content> | Emule un formulario con Enviar botón que ha sido presionado. El @ sign fuerza que el contenido sea un archivo. El < sign extrae solo la parte del contenido del archivo. Ejemplo: curl --form "name=curl" --form "[email protected]" https://example.com |
--ftp-account <data> | Especifique los datos de la cuenta para el servidor FTP. Ejemplo: curl --ftp-account "account_data" ftp://example.com/ |
--ftp-alternative-to-user <command> | Especifique el comando que se enviará si falla la autenticación del nombre de usuario y la contraseña. Ejemplo: curl --ftp-alternative-to-user "U53r" ftp://example.com |
--ftp-create-dirs | Si el directorio especificado no existe, curl intentará crearlo. Ejemplo: curl --ftp-create-dirs -T file ftp://example.com/dirs/one/file |
--ftp-method <method> | Especifique un método que se utilizará para obtener archivos a través de FTP. Los métodos disponibles son multicwd , nocwd y singlecwd . Ejemplo: curl --ftp-method multicwd ftp://example.com/dir1/dir2/file |
--ftp-pasv | Utilice el modo de conexión de datos pasiva. Ejemplo: curl --ftp-pasv ftp://example.com/ |
-P, --ftp-port <address> | Invierta los roles predeterminados para la conexión FTP. Ejemplo: curl -P eth0 ftp:/example.com |
--ftp-pret | Envía el comando PRET antes de PASV/EPSV. Ejemplo: curl --ftp-pret ftp://example.com/ |
--ftp-skip-pasv-ip | No utilice la dirección IP sugerida por el servidor. curl usará la IP de conexión de control. Ejemplo: curl --ftp-skip-pasv-ip ftp://example.com/ |
--ftp-ssl-ccc-mode <active/passive> | Configure el modo Borrar canal de comando (CCC). Ejemplo: curl --ftp-ssl-ccc-mode active --ftp-ssl-ccc ftps://example.com/ |
--ftp-ssl-ccc | Una vez completada la autenticación, se elimina la capa SSL/TLS, lo que permite la comunicación sin cifrar. Ejemplo: curl --ftp-ssl-ccc ftps://example.com/ |
--ftp-ssl-control | Utilice SSL/TLS para iniciar sesión, detenga el cifrado cuando comience la transferencia de datos. Ejemplo: curl --ftp-ssl-control ftp://example.com |
-G, --get | Utilice la solicitud HTTP GET en lugar de POST. Ejemplo: curl --get -d "tool=curl" -d "age=old" https://example.com |
-g, --globoff | Deshabilitar el analizador global de URL. Ejemplo: curl -g "https://example.com/{[]}}}}" |
--happy-eyeballs-timeout-ms <milliseconds> | Utilice el algoritmo Happy Eyeballs para conectarse a hosts de doble pila. Ejemplo: curl --happy-eyeballs-timeout-ms 500 https://example.com |
--haproxy-protocol | Utilice el encabezado v1 del protocolo HAProxy PROXY. Ejemplo: curl --haproxy-protocol https://example.com |
-I, --head | Obtener solo encabezados. Ejemplo: curl -I https://example.com |
-H, --header <header/@file> | Especifique un encabezado adicional para enviar en la solicitud HTTP. Ejemplo: curl -H "X-First-Name: Joe" https://example.com |
-h, --help <category> | Ver ayuda para una categoría específica. all enumera todas las opciones disponibles. Ejemplo: curl --help all |
--hostpubmd5 <md5> | Pase una cadena hexadecimal de 32 dígitos. Ejemplo: curl --hostpubmd5 e5c1c49020640a5ab0f2034854c321a8 sftp://example.com/ |
--hsts <file name> | Habilitar HSTS. Ejemplo: curl --hsts cache.txt https://example.com |
--http0.9 | Acepte una respuesta HTTP versión 0.9. Ejemplo: curl --http0.9 https://example.com |
-0, --http1.0 | Utilice HTTP versión 1.0. Ejemplo: curl --http1.0 https://example.com |
--http1.1 | Utilice HTTP versión 1.1. Ejemplo: curl --http1.1 https://example.com |
--http2-prior-knowledge | Utilice HTTP versión 2.0. Utilice esta opción si sabe que el servidor admite esta versión de HTTP. Ejemplo: curl --http2-prior-knowledge https://example.com |
--http2 | Intente usar HTTP versión 2.0. Ejemplo: curl --http2 https://example.com |
--http3 | Utilice HTTP versión 3.0. Esta es una opción experimental. Ejemplo: curl --http3 https://example.com |
--ignore-content-length | Ignore el encabezado Content-Length. Ejemplo: curl --ignore-content-length https://example.com |
-i, --include | Especifique que la salida debe incluir los encabezados de respuesta HTTP. Ejemplo: curl -i https://example.com |
-k, --insecure | Permitir que curl funcione con conexiones inseguras. Ejemplo: curl --insecure https://example.com |
--interface <name> | Especifique la interfaz para realizar una acción. Ejemplo: curl --interface eth0 https://example.com |
-4, --ipv4 | Solo resuelva nombres a direcciones IPv4. Ejemplo: curl --ipv4 https://example.com |
-6, --ipv6 | Solo resuelva nombres a direcciones IPv6. Ejemplo: curl --ipv6 https://example.com |
-j, --junk-session-cookies | Descartar las cookies de sesión. Ejemplo: curl --junk-session-cookies -b cookies.txt https://example.com |
--keepalive-time <seconds> | Especifique el tiempo de inactividad de la conexión antes de enviar sondeos de actividad. Ejemplo: curl --keepalive-time 30 https://example.com |
--key-type <type> | Especifique el tipo de clave privada. Los tipos disponibles son PEM (predeterminado), DER y ENG . Ejemplo: curl --key-type ENG --key here https://example.com |
--key <key> | Especifique el archivo que contiene la clave privada. Ejemplo: curl --cert certificate --key here https://example.com |
--krb <level> | Habilite y use la autenticación Kerberos. Los niveles disponibles son clear , safe , confidential y private (defecto). Ejemplo: curl --krb clear ftp://example.com/ |
--libcurl <file> | Obtenga el código fuente C para la operación de línea de comando especificada. Ejemplo: curl --libcurl client.c https://example.com |
--limit-rate <speed> | Especifique la tasa máxima de transferencia de carga y descarga. Ejemplo: curl --limit-rate 100K https://example.com |
-l, --list-only | Fuerza una vista de solo nombre. Ejemplo: curl --list-only ftp://example.com/dir/ |
--local-port <num/range> | Especifique los números de puerto que se utilizarán para la conexión. Ejemplo: curl --local-port 1000-3000 https://example.com |
--location-trusted | Similar a -L , --location , pero le permite enviar el nombre y la contraseña a todas las redirecciones. Ejemplo: curl --location-trusted -u user:pass https://example.com |
-L, --location | Permitir que curl siga cualquier redirección. Ejemplo: curl -L https://example.com |
--login-options <options> | Especifique las opciones de inicio de sesión para la autenticación del servidor de correo electrónico. Ejemplo: curl --login-options 'AUTH=*' imap://example.com |
--mail-auth <address> | Proporcione una sola dirección como identidad. Ejemplo: curl --mail-auth [email protected] -T mail smtp://example.com/ |
--mail-from <address> | Proporcione una sola dirección "de". Ejemplo: curl --mail-from [email protected] -T mail smtp://example.com/ |
--mail-rcpt-allowfails | Permite que curl continúe con la conversación SMTP si uno de los destinatarios falla. Ejemplo: curl --mail-rcpt-allowfails --mail-rcpt [email protected] smtp://example.com |
--mail-rcpt <address> | Proporcione una sola dirección "para". Ejemplo: curl --mail-rcpt [email protected] smtp://example.com |
-M, --manual | Lee el manual de curl. Ejemplo: curl --manual |
--max-filesize <bytes> | Proporcione el tamaño máximo del archivo a descargar. Ejemplo: curl --max-filesize 500K https://example.com |
--max-redirs <num> | Especifique el número máximo de redireccionamientos cuando --location está activo. Ejemplo: curl --max-redirs 3 --location https://example.com |
-m, --max-time <fractional seconds> | Especifique el tiempo máximo para una operación. Ejemplo: curl --max-time 5.52 https://example.com |
--metalink | Especifique un recurso metalink. Esta opción está deshabilitada en las versiones más recientes de curl. Ejemplo: curl --metalink file https://example.com |
--negotiate | Habilite la autenticación SPNEGO. Ejemplo: curl --negotiate -u : https://example.com |
--netrc-file <filename> | Me gusta --n , --netrc , pero le permite especificar el archivo a utilizar. Ejemplo: curl --netrc-file netrc https://example.com |
--netrc-optional | Me gusta --n , --netrc , pero usar netrc es opcional. Ejemplo: curl --netrc-optional https://example.com |
-n, --netrc | Busque en el archivo netrc la información de inicio de sesión. Ejemplo: curl --netrc https://example.com |
-:, --next | Utilice la opción para separar las solicitudes de URL. Ejemplo: curl -I https://example.com --next https://example.net/ |
--no-alpn | Deshabilitar la extensión ALPN TLS. Ejemplo: curl --no-alpn https://example.com |
-N, --no-buffer | Deshabilitar el búfer de flujo de salida. Ejemplo: curl --no-buffer https://example.com |
--no-keepalive | Deshabilitar los mensajes de actividad. Ejemplo: curl --no-keepalive https://example.com |
--no-npn | Deshabilitar la extensión NPN TLS. Ejemplo: curl --no-npn https://example.com |
--no-progress-meter | Deshabilitar la barra de progreso pero mostrar cualquier otro mensaje. Ejemplo: curl --no-progress-meter -o store https://example.com |
--no-sessionid | Deshabilitar el almacenamiento en caché de ID de sesión SSL. Ejemplo: curl --no-sessionid https://example.com |
--noproxy <no-proxy-list> | Enumere los hosts que no deberían usar un proxy. Ejemplo: curl --noproxy "www.example" https://example.com |
--ntlm-wb | Me gusta --ntlm , pero también entrega la autenticación a ntlmauth. Ejemplo: curl --ntlm-wb -u user:password https://example.com |
--ntlm | Habilite la autenticación NTLM. Ejemplo: curl --ntlm -u user:password https://example.com |
--oauth2-bearer <token> | Proporcione un token de portador para OAUTH 2.0. Ejemplo: curl --oauth2-bearer "mF_9.B5f-4.1JqM" https://example.com |
--output-dir <dir> | Especifique el directorio del archivo de salida. Ejemplo: curl --output-dir "tmp" -O https://example.com |
-o, --output <file> | Almacenar la salida en un archivo. La salida no se muestra en stdout. Ejemplo: curl -o file https://example.com -o file2 https://example.net |
--parallel-immediate | Preferir conexiones paralelas a esperar nuevas conexiones o flujos multiplexados. Ejemplo: curl --parallel-immediate -Z https://example.com -o file1 https://example.com -o file2 |
--parallel-max <num> | Especifique el número máximo de conexiones paralelas. Ejemplo: curl --parallel-max 100 -Z https://example.com ftp://example.com/ |
-Z, --parallel | Realizar transferencias en paralelo. Ejemplo: curl --parallel https://example.com -o file1 https://example.com -o file2 |
--pass <phrase> | Especifique una frase de contraseña de clave privada. Ejemplo: curl --pass secret --key file https://example.com |
--path-as-is | Evitar que curl se fusione /./ y /../ secuencias. Ejemplo: curl --path-as-is https://example.com/../../etc/passwd |
--pinnedpubkey <hashes> | Especifique una clave pública para que la use curl. Ejemplo: curl --pinnedpubkey keyfile https://example.com |
--post301 | Evite que curl convierta solicitudes POST a GET después de una redirección 301. Ejemplo: curl --post301 --location -d "data" https://example.com |
--post302 | Evite que curl convierta solicitudes POST a GET después de una redirección 302. curl --post302 --location -d "data" https://example.com |
--post303 | Evite que curl convierta solicitudes POST a GET después de una redirección 303. Ejemplo: curl --post303 --location -d "data" https://example.com |
--preproxy [protocol://]host[:port] | Utilice el proxy SOCKS como pre-proxy. Ejemplo: curl --preproxy socks5://proxy.example -x http://http.example https://example.com |
-#, --progress-bar | Utilice la barra de progreso simple. Ejemplo: curl -# -O https://example.com |
--proto-default <protocol> | Especifique qué protocolo debe usar curl para las URL sin un nombre de esquema. Ejemplo: curl --proto-default https ftp.example.com |
--proto-redir <protocols> | Especifique qué protocolos debe usar curl en la redirección. Ejemplo: curl --proto-redir =http,https https://example.com |
--proto <protocols> | Especifique qué protocolos debe usar curl para las transferencias. Ejemplo: curl --proto =http,https,sftp https://example.com |
--proxy-anyauth | Curl debe elegir un método de autenticación adecuado. Ejemplo: curl --proxy-anyauth --proxy-user user:passwd -x proxy https://example.com |
--proxy-basic | Use HTTP Basic para la comunicación con un proxy. Ejemplo: curl --proxy-basic --proxy-user user:passwd -x proxy https://example.com |
--proxy-cacert <file> | --cacert for HTTPS proxies. Ejemplo: curl --proxy-cacert CA-file.txt -x https://proxy https://example.com |
--proxy-capath <dir> | --capath for HTTPS proxies. Ejemplo: curl --proxy-capath /local/directory -x https://proxy https://example.com |
--proxy-cert-type <type> | --cert-type for HTTPS proxies. Ejemplo: curl --proxy-cert-type PEM --proxy-cert file -x https://proxy https://example.com |
--proxy-cert <cert[:passwd]> | -E , --cert for HTTPS proxies. Ejemplo: curl --proxy-cert file -x https://proxy https://example.com |
--proxy-ciphers <list> | --ciphers for HTTPS proxies. curl --proxy-ciphers ECDHE-ECDSA-AES256-CCM8 -x https://proxy https://example.com |
--proxy-crlfile <file> | --crlfile for HTTPS proxies. Ejemplo: curl --proxy-crlfile rejects.txt -x https://proxy https://example.com |
--proxy-digest | Use HTTP Digest authentication with a proxy. Ejemplo: curl --proxy-digest --proxy-user user:passwd -x proxy https://example.com |
--proxy-header <header/@file> | -H , --header for proxy communication. Ejemplo: curl --proxy-header "Host:" -x http://proxy https://example.com |
--proxy-insecure | -k , --insecure for HTTPS proxies. Ejemplo: curl --proxy-insecure -x https://proxy https://example.com |
--proxy-key-type <type> | --key-type for HTTPS proxies. Ejemplo: curl --proxy-key-type DER --proxy-key here -x https://proxy https://example.com |
--proxy-key <key> | --key for HTTPS proxies. Ejemplo: curl --proxy-key here -x https://proxy https://example.com |
--proxy-negotiate | --negotiate for proxy communication. Ejemplo: curl --proxy-negotiate --proxy-user user:passwd -x proxy https://example.com |
--proxy-ntlm | Use HTTP NTLM authentication with a proxy. Ejemplo: curl --proxy-ntlm --proxy-user user:passwd -x http://proxy https://example.com |
--proxy-pass <phrase> | --pass for HTTPS proxies. Ejemplo: curl --proxy-pass secret --proxy-key here -x https://proxy https://example.com |
--proxy-pinnedpubkey <hashes> | Specify the public key for proxy verification. Ejemplo: curl --proxy-pinnedpubkey keyfile https://example.com |
--proxy-service-name <name> | Specify the service name for proxy communciation. Ejemplo: curl --proxy-service-name "shrubbery" -x proxy https://example.com |
--proxy-ssl-allow-beast | --ssl-allow-beast for HTTPS proxies. Ejemplo: curl --proxy-ssl-allow-beast -x https://proxy https://example.com |
--proxy-ssl-auto-client-cert | --ssl-auto-client-cert for HTTPS proxies. Ejemplo: curl --proxy-ssl-auto-client-cert -x https://proxy https://example.com |
--proxy-tls13-ciphers <ciphersuite list> | Specifies the list of cipher suites to use in negotiating TLS 1.3 for proxies. Ejemplo: curl --proxy-tls13-ciphers TLS_AES_128_GCM_SHA256 -x proxy https://example.com |
--proxy-tlsauthtype <type> | --tlsauthtype for HTTPS proxies. Ejemplo: curl --proxy-tlsauthtype SRP -x https://proxy https://example.com |
--proxy-tlspassword <string> | --tlspassword for HTTPS proxies. Ejemplo: curl --proxy-tlspassword passwd -x https://proxy https://example.com |
--proxy-tlsuser <name> | --tlsuser for HTTPS proxies. Ejemplo: curl --proxy-tlsuser smith -x https://proxy https://example.com |
--proxy-tlsv1 | -1 , --tlsv1 for HTTPS proxies. Ejemplo: curl --proxy-tlsv1 -x https://proxy https://example.com |
-U, --proxy-user <user:password> | Specify the username and password for authenticating with a proxy. Ejemplo: curl --proxy-user name:pwd -x proxy https://example.com |
-x, --proxy [protocol://]host[:port] | Specify a proxy to use. Ejemplo: curl --proxy http://proxy.example https://example.com |
--proxy1.0 <host[:port]> | Specify a HTTP 1.0 proxy to use. Ejemplo: curl --proxy1.0 -x http://proxy https://example.com |
-p, --proxytunnel | Create a proxy tunnel. Ejemplo: curl --proxytunnel -x http://proxy https://example.com |
--pubkey <key> | Provide a file containing a public key. Ejemplo: curl --pubkey file.pub sftp://example.com/ |
-Q, --quote <command> | Send a command to a FTP or SFTP server, to be executed before the transfer. Ejemplo: curl --quote "rm file" ftp://example.com/foo |
--random-file <file> | Specify a file containing random data. This file will be used for seeding the random engine. Ejemplo: curl --random-file rubbish https://example.com |
-r, --range <range> | Obtain a range of bytes. Ejemplo: curl --range 40-80 https://example.com |
--raw | Disable HTTP content decoding and obtain raw data. Ejemplo: curl --raw https://example.com |
-e, --referer <URL> | Send Referrer Page information. Ejemplo: curl --referer "https://test.example" https://example.com |
-J, --remote-header-name | Use header name specified by the server instead of obtaining it from the URL. Ejemplo: curl -OJ https://example.com/file |
--remote-name-all | Apply the -O , --remote-name option to all the URLs. Ejemplo: curl --remote-name-all ftp://example.com/file1 ftp://example.com/file2 |
-O, --remote-name | Specify that the local file should have the name of the remote file that was downloaded. Ejemplo: curl -O https://example.com/filename |
-R, --remote-time | Specify that the local file should have the timestamp of the remote file that was downloaded. Ejemplo: curl --remote-time -o foo https://example.com |
--request-target <path> | Specify an alternative target path. Ejemplo: curl --request-target "*" -X OPTIONS https://example.com |
-X, --request <command> | Specify a request method for communication with the server. Ejemplo: curl -X "DELETE" https://example.com |
--resolve <[+]host:port:addr[,addr]...> | Specify a custom address for a host/port. Ejemplo: curl --resolve example.com:443:127.0.0.1 https://example.com |
--retry-all-errors | Force retrying on all errors. Ejemplo: curl --retry-all-errors https://example.com |
--retry-connrefused | Add ECONNREFUSED to the list of errors that are eligible for --retry . Ejemplo: curl --retry-connrefused --retry https://example.com |
--retry-delay <seconds> | Specify the amount of time between retries. Ejemplo: curl --retry-delay 5 --retry https://example.com |
--retry-max-time <seconds> | Specify the maximum amount of time for --retry attempts. Ejemplo: curl --retry-max-time 30 --retry 10 https://example.com |
--retry <num> | Specify the number of retries after curl encounters and error. Ejemplo: curl --retry 7 https://example.com |
--sasl-authzid <identity> | Specify an additional authentication identity for SASL PLAIN authentication. Ejemplo: curl --sasl-authzid zid imap://example.com/ |
--sasl-ir | Enable initial response during SASL authentication. Ejemplo: curl --sasl-ir imap://example.com/ |
--service-name <name> | Specify the SPNEGO service name. Ejemplo: curl --service-name sockd/server https://example.com |
-S, --show-error | Show an error message event with the -s , --silent option enabled. Ejemplo: curl --show-error --silent https://example.com |
-s, --silent | Turn on the silent mode. This option mutes curl. Ejemplo: curl -s https://example.com |
--socks4 <host[:port]> | Specify a SOCKS4 proxy. Ejemplo: curl --socks4 hostname:4096 https://example.com |
--socks4a <host[:port]> | Specify a SOCKS4a proxy. Ejemplo: curl --socks4a hostname:4096 https://example.com |
--socks5-basic | Use the basic authentication method (username/password) with a SOCKS5 proxy. Ejemplo: curl --socks5-basic --socks5 hostname:4096 https://example.com |
--socks5-gssapi-nec | Allow protection mode negotiation to be unprotected. Ejemplo: curl --socks5-gssapi-nec --socks5 hostname:4096 https://example.com |
--socks5-gssapi-service <name> | Change the name of a socks server. Ejemplo: curl --socks5-gssapi-service sockd --socks5 hostname:4096 https://example.com |
--socks5-gssapi | Use GSS-API authentication with a SOCKS5 proxy. Ejemplo: curl --socks5-gssapi --socks5 hostname:4096 https://example.com |
--socks5-hostname <host[:port]> | Specify the SOCKS5 proxy to use. Ejemplo: curl --socks5-hostname proxy.example:7000 https://example.com |
--socks5 <host[:port]> | Specify the SOCKS5 proxy to use. The hostname is resolved locally. Ejemplo: curl --socks5 proxy.example:7000 https://example.com |
-Y, --speed-limit <speed> | Set the lower limit for the download speed. Ejemplo: curl --speed-limit 300 --speed-time 10 https://example.com |
-y, --speed-time <seconds> | Set the time period for the speed limit measurement. Ejemplo: curl --speed-limit 300 --speed-time 10 https://example.com |
--ssl-allow-beast | Tell curl to ignore the BEAST security flaw in the SSL3 and TLS1.0 protocols. Ejemplo: curl --ssl-allow-beast https://example.com |
--ssl-auto-client-cert | Obtain and use a client certificate automatically. Ejemplo: curl --ssl-auto-client-cert https://example.com |
--ssl-no-revoke | Do not check for certificate revocation. Ejemplo: curl --ssl-no-revoke https://example.com |
--ssl-reqd | Require SSL/TLS. Ejemplo: curl --ssl-reqd ftp://example.com |
--ssl-revoke-best-effort | Ignore certificate revocation checks if they failed because of missing distribution points. Ejemplo: curl --ssl-revoke-best-effort https://example.com |
--ssl | Attempt to use SSL. Ejemplo: curl --ssl pop3://example.com/ |
-2, --sslv2 | Use SSLv2. Newer curl versions ignore this request due to security concerns with SSLv2. Ejemplo: curl --sslv2 https://example.com |
-3, --sslv3 | Use SSLv3. Newer curl versions ignore this request due to security concerns with SSLv3. Ejemplo: curl --sslv3 https://example.com |
--stderr <file> | Output stderr to a file. The - symbol tells curl to output stderr to stdout. Ejemplo: curl --stderr output.txt https://example.com |
--styled-output | Enable bold fonts for HTTP header terminal output. curl --styled-output -I https://example.com |
--suppress-connect-headers | Prevent curl from outputting CONNECT headers. Ejemplo: curl --suppress-connect-headers --include -x proxy https://example.com |
--tcp-fastopen | Enable TCP Fast Open. Ejemplo: curl --tcp-fastopen https://example.com |
--tcp-nodelay | Enable TCP_NODELAY. Ejemplo: curl --tcp-nodelay https://example.com |
-t, --telnet-option <opt=val> | Pass the TTYPE , XDISPLOC , and NEW_ENV options to the telnet protocol. Ejemplo: curl -t TTYPE=vt100 telnet://example.com/ |
--tftp-blksize <value> | Set the value of TFTP BLKSIZE. Must be a value larger than 512. Ejemplo: curl --tftp-blksize 1024 tftp://example.com/file |
--tftp-no-options | Prevents curl from sending requests for TFTP options. Ejemplo: curl --tftp-no-options tftp://192.168.0.1/ |
-z, --time-cond <time> | Request a document that was modified after a certain date and time. For documents modified before the time, prefix the date expression with a dash. Ejemplo: curl -z "Wed 01 Sep 2021 12:18:00" https://example.com |
--tls-max <VERSION> | Specify the newest TLS version that is supported. Ejemplo: curl --tls-max 1.2 https://example.com |
--tls13-ciphers <ciphersuite list> | Specifies the list of cipher suites to use in negotiating TLS 1.3 Ejemplo: curl --tls13-ciphers TLS_AES_128_GCM_SHA256 https://example.com |
--tlsauthtype <type> | Specify the TLS authentication type. Ejemplo: curl --tlsauthtype SRP https://example.com |
--tlspassword <string> | Specify the TLS password. Ejemplo: curl --tlspassword pwd --tlsuser user https://example.com |
--tlsuser <name> | Specify the TLS username. Ejemplo: curl --tlspassword pwd --tlsuser user https://example.com |
--tlsv1.0 | Tell curl to use TLS1.0 or newer. Ejemplo: curl --tlsv1.0 https://example.com |
--tlsv1.1 | Tell curl to use TLS1.1 or newer. Ejemplo: curl --tlsv1.1 https://example.com |
--tlsv1.2 | Tell curl to use TLS1.2 or newer. Ejemplo: curl --tlsv1.2 https://example.com |
--tlsv1.3 | Tell curl to use TLS1.3 or newer. Ejemplo: curl --tlsv1.3 https://example.com |
-1, --tlsv1 | Specify that curl should use at least 1.x version of TLS. Ejemplo: curl --tlsv1 https://example.com |
--tr-encoding | Ask for a compressed Transfer-Encoding response. Ejemplo: curl --tr-encoding https://example.com |
--trace-ascii <file> | Enable a full trace dump to a file. Eliminates the hex part and shows only ASCII. Ejemplo: curl --trace-ascii log.txt https://example.com |
--trace-time | Require a time stamp on each trace or verbose line. Ejemplo: curl --trace-time --trace-ascii output https://example.com |
--trace <file> | Enable a full trace dump to a file. Ejemplo: curl --trace log.txt https://example.com |
--unix-socket <path> | Specify a Unix socket path. Ejemplo: curl --unix-socket socket-path https://example.com |
-T, --upload-file <file> | Upload a file to the URL. Ejemplo: curl -T "img[1-1000].png" ftp://ftp.example.com/ |
--url <url> | Provide a URL to be fetched. Ejemplo: curl --url https://example.com |
-B, --use-ascii | Enable ASCII transfer. Ejemplo: curl -B ftp://example.com/README |
-A, --user-agent <name> | Specify the user agent name. Ejemplo: curl -A "Agent 007" https://example.com |
-u, --user <user:password> | Provide the username and password for authentication. Ejemplo: curl -u user:secret https://example.com |
-v, --verbose | Tell curl to be verbose. Ejemplo: curl --verbose https://example.com |
-V, --version | See the installed versions of curl and libcurl. Ejemplo: curl --version |
-w, --write-out <format> | Tell curl to show information about the completed transfer on stdout. Ejemplo: curl -w '%{http_code}\n' https://example.com |
--xattr | Store file metadata in file attributes. Ejemplo: curl --xattr -o storage https://example.com |