Descarga de archivos en Linux desde la línea de comandos

Hablamos de diferentes herramientas disponibles en sistemas GNU/Linux que nos van a permitir la descarga de archivos desde Internet, utilizando su potente línea de comandos. Así que empecemos.

1. GNU 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

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

wget -O nombre-fichero URL-del-archivo-a-descargar

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

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

Descargar ficheros de manera recursiva:

wget -r URL-del-archivo-a-descargar

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

wget -r -A jpg,png URL-del-archivo-a-descargar

2. 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

3. W3m

De esta herramienta ya os hablé hace unos cuantos años. Se trata de un navegador basado en texto que puede mostrar páginas web locales o remotas, así como otros documentos. Puede procesar tablas y marcos HTML, pero ignora JavaScript y las hojas de estilo CSS. W3m también puede servir como un localizador para archivos de texto nombrados como argumentos o pasados en la entrada estándar, y como un navegador de directorio de propósito general

Ejemplo de vista de w3m

Sus instrucciones de instalación son estas:

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

A diferencia de las dos herramientas anteriores con w3m podemos navegar por una web dada y así localizar el fichero que queremos descargar:

w3m URL-a-consultar

4. Elinks

Se trata de una herramienta similar a w3m. Es un navegador WWW en modo texto, colores de apoyo, representación de tablas, descargar en segundo plano, interfaz de configuración basadas en menús, navegación de pestañas y código delegado. Admite marcos. Puede tener diferentes de archivos asociados. Además, puede manejar tanto archivos locales como URL remotas. Trabaja con la mayoría de los protocolos como HTTP, HTTPS y FTP, y de manera adicional otros como BitTorrent o SMB.

Ejemplo de vista de Elinks

Las instrucciones para su instalación:

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

ste programa nos permite navegar por una web para ubicar el fichero a descargar:

elinks URL-a-consultar

5. Otras herramientas

Existen otras herramientas que nos pueden servir para mover o copiar ficheros desde otros servidores y que son muy utilizadas en guiones o scripts, como por ejemplo scp o rsync, de las que ya hemos hablado.

Y esto es todo, espera que esta información os sea de utilidad en algún momento.

Fuentes consultadas

Página de GNU Wget

Página de man de Curl

Página de man W3m

Página de man de Elinks