1996, época de mucho crecimiento de proyectos en la muy joven World Wide Web, Wget es uno de esos proyectos que aún nos acompañan y no ha dejado de perder utilidad (solo fama).

Wget es desarrollado por el proyecto GNU, por ende de código abierto, creado para descargar desde terminal archivos desde la web usando una terminal, soporta los protocolos HTTP, HTTPS y FTP, asi como el uso de proxies para la conexión. Entre sus ventajas vemos: compatibilidad con conexión segura, reanudación de descargas interrumpidas, limite de velocidad…

Lo primero es decirles que viene incluida por defecto en la mayoría de distribuciones del mundo GNU/Linux. Veamos algunos ejemplos de uso rapidos.

Descarga de archivos individuales

El uso rápido y por defecto seria la descarga de un fichero de cualquier formato desde una web, empecemos buscando el enlace a descargar:

descargar desde terminal

Con el enlace en portapapeles iremos a la terminal, por defecto wget guarda el fichero en la carpeta donde te encuentres, si queremos otra navegamos por ejemplo a descargas:

cd /home/TUUSUARIO/Descargas

Y desde allí llamamos a wget junto con el enlace a descargar:

descargar desde terminal

Entre los datos que nos muestra antes de la descarga vemos las direcciones ip que participan en la conexion, tambien vemos una redirección 302 que nos envía a otro sitio (es común cuando mueven los archivos de dominio o servidor), vemos mas abajo el tamaño del archivo a descargar (en nuestro caso 349mb), el nombre del archivo que sera guardado en nuestro equipo y al final progreso de la descarga con porcentaje, velocidad y tiempo estimado de finalización.

Adicional podremos descargar multiples archivos, incluso de diferentes protocolos:

wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.5.0-amd64-netinst.iso ftp://debian.org/descargas/debian-10.5.0-amd64-netinst.iso

Descargar todos los archivos con una extensión determinada:

wget  https://debian.org/*.iso

O una lista que contiene enlaces a descargar:

wget -i archivo.txt

Reanudación de descargas incompletas.

Usando una de sus ventajas, podremos reanudar una descarga interrumpida con la opción -c:

wget -c https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.5.0-amd64-netinst.iso

Aunque por defecto wget detectará que ya hay una descarga incompleta e intentará continuarla, fue uno de los primeros en utilizar esta funcionalidad.

Descarga de directorios

Lo siguiente que veremos es la descargas de directorios enteros, siguiendo la linea anterior descargaremos la carpeta entera que contiene varios ficheros .iso

descargar desde terminal

Para esto usaremos la opción -r que hace referencia al modo recursivo el cual revisa hasta 5 niveles de profundidad, si deseamos que sea mas exhaustivo agregamos -l con el numero de niveles deseados:

wget -r -l 8 https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/

Descarga de sitios web

Si buscamos descarga una pagina web entera, podemos hacerlo con el parametro -m o --mirror con el cual obtienes una copia exacta, probemos con:

wget -m https://www.cafecondebian.org

Es posible que descargue algunos archivos que no se puedan ver en el navegador, como cgi o php, con la opción -E convertiremos todo a html y con -k convertiremos enlaces remotos a locales:

wget -m -k -E https://www.debian.org

Con la opción -H podremos expandir la recursividad a sitios donde enlace la pagina principal, tambien usaremos recursividad a 1 nivel (-r -l1), convertimos los enlaces a locales(-k), convierte todo a .html(-E), descarga imagenes y otros elementos(-p).

wget  -H  -r  -l1  -k  -E  -p  https://www.debian.org

Este tipo de comandos pueden ocupar mucho espacio en disco, ojo con eso.

Por ultimo un ejemplo de la potencia de wget, con lo siguiente revisaremos sitios listados en el archivo .txt en búsqueda de solo archivos .mp3 ignorando bloqueos de los archivos robots.txt, una bomba 😀 :

wget  -r  -l1  -H  -t1  -nd  -N  -np  -A.mp3-erobots=off-i  paginasmp3.txt

Si necesitas mas detalles de las opciones posibles, recomiendo el siguiente articulo aquí.

Recuerda darle un vistazo a nuestros otros tutoriales desde aquí.

Para ti cual es el mejor uso? Tienes otro uso curioso usando sus posibilidades?

Comenta