Hay varias herramientas disponibles en sistemas Operativos GNU/Linux que nos permiten la descarga de archivos desde Internet o una intranet, utilizando su potente Terminal con toda su gama de la línea de comandos.

Wget

Durante esta década de entradas en la web, sin duda wget es una de las herramientas que más he utilizado para la descarga de archivos. Se trata de una herramienta para la descarga no interactiva de archivos desde la Web. Es compatible con los protocolos HTTP, HTTPS y FTP, así como la recuperación a través de un proxy HTTP.

Como hemos dicho wget no es interactivo, lo que significa que puede funcionar en segundo plano, mientras el usuario no está conectado. Este le permite iniciar una recuperación y desconectarse del sistema, dejando que wget termine el trabajo. Por el contrario, la mayoría de los navegadores web requieren la presencia constante del usuario, lo que puede ser un gran obstáculo a la hora de transferir una gran cantidad de datos.

Otra de las ventajas es que puede seguir enlaces en páginas HTML, XHTML y CSS para crear versiones locales de sitios web remotos, recreando completamente la estructura de directorios del sitio original. Este a veces se llama “recarga recursiva”. Al hacerlo, wget respeta el estándar de exclusión de robots, esto es “robots.txt”. Podemos indicarle que convierta los enlaces de los archivos descargados para que apunten a los archivos locales para verlos sin conexión.

Y por último wget está diseñado para ser robusto en conexiones de red lentas e inestables; si una descarga falla debido a un problema de red, seguirá intentándolo hasta que se haya recuperado todo el archivo. Si el servidor admite la recuperación, le indicará al servidor que continúe con la descarga donde la dejó.

Su instalación es bien sencilla

#En sistemas con paquetería DEB
sudo apt install wget
#En sistemas con paquetería RPM
sudo dnf install wget
#O bien
sudo yum install wget

Su uso básico sin parámetro o bien utilizando el parámetro -i, indicando el fichero donde están ubicados los enlaces a utilizar para la descarga:

wget -i fichero-enlaces-descargas.txt

wget https://thinxlab.com/archivo.tar.gz

Si nos interesa que el fichero a descargar se guarde con otro nombre:

wget -O nuevo_nombre_archivo.tar.gz https://thinxlab.com/archivo.tar.gz

Descarga de un fichero vía FTP con autentificación:

wget -u usuario_ftp:contraseña_ftp -O https://thinxlab.com/archivo.tar.gz

Descargar ficheros de manera recursiva:

wget -r https://thinxlab.com/files/

Descargar todos los ficheros que cumplan con un tipo de archivo desde una página web:

wget -r -A jpg,png https://thinxlab.com

Curl

Curl es una herramienta para transferir datos desde o hacia un servidor, utilizando uno de los protocolos compatibles, por ejemplo, los más populares como FILE, FTP, FTPS, HTTP, HTTPS, IMAP, IMAPS, LDAP, POP3, SFTP, SMTP o TELNET, entre otros. El comando está diseñado para funcionar sin interacción del usuario.

Curl ofrece una gran cantidad de trucos útiles como soporte para proxy, autentificación de usuario, carga de FTP, publicación HTTP, conexiones SSL, cookies, resumen de transferencia de archivos, Metalink y mucho más.

Su instalación también es bien sencilla:

#En sistemas con paquetería DEB
sudo apt install curl
#En sistemas con paquetería RPM
sudo dnf install curl
#O bien
sudo yum install curl

El uso habitual para descargar un fichero dado es la siguiente:

curl -O URL-del-archivo-a-descargar

Si queremos descargar varios archivos, se pueden concatenar, como en el ejemplo:

curl -O URL-del-archivo-a-descargar-1 -O URL-del-archivo-a-descargar-2

También podemos realizar una descarga guardando el fichero con otro nombre:

curl -o nombre-fichero URL-del-archivo-a-descargar

Si se trata de una descarga de un servidor FTP con autentificación:

curl -u usuario_ftp:contraseña_ftp -O URL-del-archivo-a-descargar

Muchas gracias!!

Fuentes:

Página de GNU Wget

Página de man de Curl