curl es una herramienta que permite transferir datos desde y hacia un servidor usando uno de los protocolos soportados: HTTP, HTTPS, FTP, FTPS, SMB … (consulte el manual de curl para ver una lista de los protocolos soportados). curl además soporta HTTP POST, autenticación, cookies, metalinks, descarga de ficheros y más.
En muchas ocaciones curl se usa como un administrador de descarga ya que permite pausar/reiniciar la descarga de un fichero a partir del último byte descargado.
Descargar un solo fichero
$ curl -# -C - -O http://dl-cdn.alpinelinux.org/alpine/v3.8/releases/x86_64/alpine-standard-3.8.0-x86_64.iso
Descarga el ISO de Alpine al DIR actual.
Opciones
-#: Barra de progreso.
-C -: Reinicia la descarga a partir de último byte descargado.
-O: Salva el fichero al DIR actual con el mimo nombre remoto: alpine-standard-3.8.0-x86_64.iso.
Descargar varios ficheros a la vez
Using xargs and curl (al estilo wget -i)
$ xargs -a urls.txt -I{} curl -# -O {}
xargs lee linea a linea el fichero urls.txt y le pasa cada línea a curl, nótese la opción: -I{} de xargs y la opción -O {} de curl.
Formato del fichero urls.txt
https://download.libsodium.org/libsodium/releases/LATEST.tar.gz https://download.libsodium.org/libsodium/releases/libsodium-1.0.16.tar.gz.sig
Usando la opción -K
$ curl -# -K urls.txt
Formato del fichero urls.txt
url = "url1" output = "nom-fich1" url = "url2" output = "nom-fich2"
Opción -K, leyendo de la entreda estándar y usando HEREDOC
$ curl -# -K - <<URL url = "https://download.libsodium.org/libsodium/releases/libsodium-1.0.16.tar.gz" output = "libsodium-1.0.16.tar.gz" url = "https://download.libsodium.org/libsodium/releases/libsodium-1.0.16.tar.gz.sig" output="libsodium-1.0.16.tar.gz.sig" URL
Lectura recomendada
- man curl