Tutorial completo del comando wget en Linux: guía práctica

Última actualización: 17/12/2025
Autor: Isaac
  • wget es una herramienta GNU de línea de comandos para descargar archivos y webs vía HTTP, HTTPS y FTP en Linux y otros sistemas.
  • El comando ofrece multitud de opciones: reanudar descargas, limitar velocidad, trabajar en segundo plano, recursividad y filtrado por tipo de archivo.
  • Permite clonar sitios web, analizar enlaces rotos y automatizar tareas mediante scripts y cron controlando el consumo de ancho de banda.
  • Es importante usar wget con responsabilidad, respetando robots.txt cuando proceda y verificando URLs y opciones para evitar descargas masivas indeseadas.

Tutorial comando wget en Linux

Si usas Linux a diario tarde o temprano vas a necesitar descargar archivos desde la terminal de forma rápida y flexible. Ahí es donde entra en juego wget, una pequeña joya del proyecto GNU que lleva décadas haciendo el trabajo sucio sin hacer ruido.

Con unas pocas opciones, wget te permite bajar un único fichero, cientos de archivos, webs completas, contenido por FTP, limitar el ancho de banda, continuar descargas cortadas, automatizar tareas con cron y mucho más. Todo sin ventanas ni asistentes: solo tú, la consola y un comando muy potente.

Qué es exactamente el comando wget en Linux

El comando wget pone en marcha el programa de línea de comandos wget del proyecto GNU, diseñado para descargar contenido desde la red usando distintos protocolos. Su propio nombre viene de «World Wide Web» + «get», es decir, “obtener desde la web”.

Esta herramienta se desarrolla en C portable y se distribuye como software libre, así que funciona sin problemas en prácticamente cualquier sistema tipo Unix: distribuciones GNU/Linux, BSD, macOS mediante herramientas adicionales, e incluso en Windows a través de entornos como Cygwin o la consola Bash de Ubuntu integrada.

Con wget puedes recuperar ficheros vía HTTP, HTTPS y FTP, e incluso usarlo con autenticación cuando un servidor exige usuario y contraseña, tanto para HTTP como para FTP. Además, entiende redirecciones, certificados TLS y las respuestas típicas de los servidores web.

Una de sus mayores virtudes es que las descargas son no interactivas: wget no necesita que tengas una sesión abierta frente al equipo. Puedes lanzarlo desde un script, dejar un cron corriendo en un servidor remoto o usarlo en segundo plano sin preocuparte de si la sesión SSH se corta.

En la mayoría de distribuciones populares como Debian, Ubuntu o Linux Mint wget viene instalado por defecto. En otras, solo tienes que tirar del gestor de paquetes correspondiente y lo tendrás operativo en un minuto.

Uso de wget en terminal Linux

Cómo instalar wget en Linux y otros sistemas

En un entorno Linux típico basta con un simple comando para instalar o comprobar que wget está disponible. Por ejemplo, en Ubuntu o Debian puedes hacer algo tan directo como:

Instalación rápida: sudo apt-get install wget

Tras completar la instalación, tendrás el binario wget listo en tu PATH. Puedes comprobarlo con:

Comprobar versión: wget --version

En otras distribuciones cambiará el gestor de paquetes, pero la idea es la misma: yum, dnf, pacman o zypper te permiten instalar wget desde los repositorios oficiales con un único comando.

En macOS, el sistema no incorpora wget de fábrica, pero puedes recurrir a Homebrew para instalar la herramienta de consola. Una vez tengas brew configurado, bastaría con:

Homebrew: brew install wget

En el ecosistema Windows tradicional no hay un acceso tan directo a wget desde el símbolo del sistema clásico, aunque Cygwin y la consola Bash de Ubuntu en Windows 10/11 incluyen wget y otras utilidades GNU. Si trabajas con la capa Linux de Windows, prácticamente lo usarás igual que en cualquier distro.

Ejemplos prácticos de wget

Sintaxis básica y opciones más importantes de wget

La estructura general del comando es muy sencilla: wget seguido de opciones y una o varias URLs. La forma canónica sería algo así:

Formato: wget [opciones] URL1 URL2 URL3 ...

Si no añades nada más, wget descargará el archivo indicado por la URL y lo guardará automáticamente en el directorio de trabajo actual usando el mismo nombre que tiene en el servidor remoto.

El verdadero poder del comando viene de la gran cantidad de opciones disponibles. Algunas de las más usadas en el día a día son:

  • -c o –continue: reanuda una descarga que se ha quedado a medias, sin empezar desde cero.
  • -N: solo baja el archivo si la copia remota es más reciente que la que ya tienes en disco.
  • -t [número]: indica cuántos intentos debe realizar wget al descargar un archivo antes de rendirse.
  • -w [segundos]: marca una espera entre descargas consecutivas para no saturar el servidor.
  • -r: activa el modo recursivo para seguir enlaces o recorrer directorios.
  • -P [ruta]: elige el directorio donde quieres que se guarden los ficheros descargados.
  • –limit-rate=[velocidad]: limita el ancho de banda consumido por wget (por ejemplo 200k).
  4 grandes emuladores de Linux para tu PC con Windows 10

Estas opciones se pueden combinar para adaptar el comportamiento de wget exactamente a lo que necesitas, desde una simple descarga puntual hasta auténticos arañadores de sitios web o tareas de copia periódica.

Ejemplos básicos: descargar uno o varios archivos

El uso más elemental de wget consiste en bajar un único archivo a la carpeta en la que estás. Por ejemplo, para descargar la imagen ISO de una distribución de Ubuntu podrías lanzar algo como:

Ejemplo rápido: wget http://releases.ubuntu.com/14.04/ubuntu-14.04-desktop-amd64.iso

Durante la descarga verás en pantalla el porcentaje completado, el tamaño total, la velocidad y el tiempo empleado, además de la resolución DNS y la conexión al servidor. Al finalizar, tendrás el fichero en tu directorio actual con el mismo nombre que en el enlace.

Si en lugar de un archivo quieres descargar varios ficheros a la vez indicando todas las URLs en una sola orden, basta con encadenar enlaces separados por espacios, incluso mezclando protocolos HTTP y FTP:

Varios archivos: wget http://ejemplo.com/programa.tar.gz ftp://otrositio.com/descargas/video.mpg

Además, wget entiende ciertos patrones de expansión en la URL. Por ejemplo, si en un servidor tienes una colección de imágenes numeradas de 1 a 50, podrías hacer:

Patrón de expansión: wget http://example.com/images/{1..50}.jpg

Otra forma muy práctica de gestionar múltiples descargas consiste en preparar un archivo de texto con una URL en cada línea y luego decirle a wget que lea esa lista. Por ejemplo:

Crear lista: nano archivos.txt

Dentro de archivos.txt escribes algo como:

http://ejemplo.com/programa.tar.gz
http://ejemplo.com/rpm/paquete.rpm
ftp://otrositio.com/descargas/distro.iso

Después solo necesitas ejecutar:

Descargar desde lista: wget -i archivos.txt

Con la opción -i, wget leerá el fichero de texto y descargará cada una de las direcciones listadas, perfecto para dejar el equipo trabajando en segundo plano mientras haces otra cosa.

Cambiar nombre, carpeta y limitar la velocidad de las descargas

Cuando no te interesa conservar el nombre original del archivo remoto puedes tirar de la opción -O para renombrar el resultado. Por ejemplo, si quieres guardar la ISO anterior con un nombre más corto:

Renombrar: wget -O ubuntu_amd64.iso http://releases.ubuntu.com/14.04/ubuntu-14.04-desktop-amd64.iso

Este mismo truco es muy útil cuando siempre quieres descargar algo con un nombre fijo para sobrescribirlo en scripts, como por ejemplo un backup diario.

Si lo que quieres es controlar el directorio de destino donde se guardan los ficheros descargados, puedes valerte de la opción -P seguida de la ruta:

Directorio destino: wget -P documentos/isos/ http://releases.ubuntu.com/14.04/ubuntu-14.04-desktop-amd64.iso

De esta manera, el archivo terminará en documentos/isos/ en lugar del directorio actual, lo cual viene genial para mantener las descargas organizadas sin tener que hacer movimientos adicionales.

Otro aspecto clave es el consumo de ancho de banda. Wget permite limitar la velocidad para no acaparar toda la conexión, algo especialmente relevante en servidores o conexiones compartidas. Por ejemplo, para fijar un máximo de 500 KB/s:

Limitar velocidad: wget --limit-rate=500k https://wordpress.org/latest.zip

También puedes indicarle un valor como 50K, 2M, etc., ajustando la tasa a tus necesidades. Así puedes seguir navegando o usando otros servicios mientras se descargan archivos grandes en segundo plano.

Reanudar descargas, controlar reintentos y trabajar en segundo plano

Uno de los casos típicos es que se te corte la conexión o se vaya la luz en mitad de una descarga grande. En lugar de perder todo lo bajado, wget permite reanudar el archivo donde se quedó con la opción -c:

Reanudar descargas: wget -c http://releases.ubuntu.com/14.04/ubuntu-14.04-desktop-amd64.iso

Mientras el servidor soporte reanudación de descargas parciales, wget continuará desde el punto en el que se detuvo. Si no usas -c y el fichero ya existe, el programa lo guardará con un sufijo “.1” para no pisar el archivo original.

En entornos con conexiones inestables o servidores muy saturados, también es importante controlar el número de intentos de descarga. Por defecto wget realiza 20 intentos, pero tú puedes subir o bajar ese valor con -t:

Control de intentos: wget -t 50 http://ejemplo.com/pelicula.mpg

Si lo deseas puedes incluso utilizar -t inf para que wget siga intentando indefinidamente hasta lograr conectarse, algo que puede ser útil en scripts donde es prioritario no fallar.

Cuando hablamos de archivos enormes, conviene ejecutar la descarga en segundo plano para poder cerrar la terminal o seguir usando esa sesión. Wget ofrece la opción -b para esto:

  Consigue la mejor aplicación Android para escuchar la radio FM desde tu teléfono sin internet

En segundo plano: wget -b http://example.com/beefy-file.tar.gz

Al utilizar -b, el programa se “despega” del terminal y va registrando su progreso en un fichero llamado wget-log dentro del directorio actual. Puedes ver cómo avanza con:

Ver progreso: tail -f wget-log

Si además quieres tener un informe detallado de todo el proceso de descarga —ideal para depurar problemas— puedes redirigir la salida de wget a un archivo de log usando la opción -o:

Registro detallado: wget -o reporte.txt http://ejemplo.com/programa.tar.gz

Trabajar con servidores protegidos y FTP usando wget

Muchos recursos online no son públicos y exigen un usuario y contraseña para poder descargar ficheros. Wget sabe tratar con estos entornos añadiendo las credenciales en la línea de comandos.

Por ejemplo, en un servidor HTTP con autenticación básica, podrías usar algo como:

HTTP autenticado: wget --http-user=admin --http-password=secreto http://ejemplo.com/archivo.mp3

Del mismo modo, el comando funciona perfectamente con servidores FTP tradicionales. Para descargar un archivo concreto desde un FTP privado, bastaría con:

FTP con credenciales: wget --ftp-user=TU_USUARIO --ftp-password=TU_PASSWORD ftp://example.com/something.tar

Si lo que quieres es llevarte un directorio completo desde un servidor FTP, puedes combinar el modo recursivo con rutas FTP:

Descargar directorio FTP: wget -r ftp://example.com/folder

Si añades la opción –no-parent te aseguras de que wget no suba a directorios superiores en el árbol del FTP y se concentre solo en la carpeta indicada y sus subdirectorios.

Descargar sitios web completos para verlos sin conexión

Una de las funciones más potentes de wget es su capacidad para descargar el contenido de una web entera y poder consultarla en local sin conexión a Internet. Esto puede venir de cine para viajes largos, entornos sin red o análisis offline de sitios.

Ejemplo avanzado: wget --mirror --convert-links --page-requisites --no-parent -P documentos/websites/ https://some-website.com

Aquí cada opción aporta algo muy concreto al proceso de clonación de la web:

  • –mirror: activa un modo pensado para espejos, que combina recursividad profunda con gestión de marcas de tiempo.
  • –convert-links: modifica los enlaces internos para que apunten a los archivos descargados, permitiendo la navegación offline.
  • –page-requisites: incluye todos los recursos necesarios para que la página se vea bien (CSS, JavaScript, imágenes, etc.).
  • –no-parent: evita subir a directorios superiores, limitando la descarga al ámbito del sitio que te interesa.
  • -P documentos/websites/: indica el directorio en el que se guardará toda la estructura descargada.

Una vez termine la descarga, podrás abrir el índice principal con tu navegador favorito y navegar por la copia como si estuvieras online. Los archivos se encontrarán organizados dentro de la carpeta documentos/websites/ con subdirectorios que replican la estructura del servidor remoto.

Para ciertos sitios interesa también usar –html-extension o la abreviatura -E, que harán que todos los documentos se guarden con extensión .html aunque originalmente fueran .php, .asp o .cgi, facilitando su apertura posterior en navegadores locales.

Localizar enlaces rotos y usar wget como “araña” web

Más allá de descargar contenido, wget se puede utilizar como una especie de crawler ligero para evaluar el estado de los enlaces de un sitio. Gracias al modo spider, el programa recorre las páginas sin guardarlas, simplemente comprobando qué responde el servidor.

Modo spider: wget -o wget-log -r -l 5 --spider http://example.com

En esta línea cada parámetro cumple su papel:

  • -o wget-log: envía toda la salida al archivo wget-log para revisarla después con calma.
  • -r: activa la recursividad para seguir enlaces internos.
  • -l 5: define la profundidad máxima de recursión en 5 niveles.
  • –spider: convierte a wget en una araña que verifica enlaces pero no descarga los archivos.

Más tarde puedes procesar el fichero de log para extraer de forma rápida los enlaces que devuelven 404. Un ejemplo típico de comando para filtrarlos sería:

Filtrar 404s: grep -B 2 '404' wget-log | grep "http" | cut -d " " -f 4 | sort -u

De esta manera obtendrás una lista limpia de URLs problemáticas, ideal para que los administradores de la web corrijan redirecciones o contenidos eliminados.

Recuperar una web completa con opciones avanzadas

Hay escenarios donde quieres descargar una web con mucho más control sobre lo que se trae wget, por ejemplo para análisis detallados, auditorías de contenido o consultas sin red durante mucho tiempo.

Descarga avanzada: wget -m -F -p -np -k -erobots=off -U mozilla --limit-rate=50K --wait=2 --html-extension sitioweb

En esta línea se combinan varios parámetros interesantes:

  • -m: modo espejo, equivalente a ciertas combinaciones de recursividad y timestamps.
  • -F: fuerza la descarga incluso si hay pequeños errores en las respuestas.
  • -p: asegura que se descargan todos los recursos auxiliares de cada página.
  • -np: no parent, impide subir a directorios superiores durante la recursión.
  • -k: convierte los enlaces para que apunten a la copia local.
  • -erobots=off: ignora el archivo robots.txt del sitio y no respeta sus restricciones.
  • -U mozilla: establece una cadena de agente de usuario similar a un navegador Mozilla.
  • –limit-rate=50K: limita la velocidad a 50 KB/s para no saturar la línea.
  • –wait=2: introduce una pausa de 2 segundos entre peticiones consecutivas.
  • –html-extension: fuerza la extensión .html en todos los documentos descargados.
  Distinction Between iCloud and iTunes Backup of iPhone

El resultado es una copia muy completa y navegable del sitio, pensada para consulta offline y análisis detallado. Eso sí, conviene vigilar el espacio en disco, porque este tipo de operaciones puede llenar gigas sin que te des cuenta, especialmente si se activa recursividad sobre un site grande.

Ejemplos extremos: filtrando tipos de archivo y saltándose robots

Wget también se presta a usos más “extremos”, como buscar solo cierto tipo de ficheros en una lista larga de sitios. Un ejemplo típico es la descarga de archivos mp3 a partir de direcciones guardadas en un fichero de texto:

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

El comportamiento de cada opción en esta combinación es muy ilustrativo del potencial de wget:

  • -r -l1: recursividad activada pero limitada a un solo nivel de subdirectorios.
  • -H: permite seguir enlaces hacia otros dominios distintos al principal (span hosts).
  • -t1: solo un intento de conexión por URL; si falla, pasa a la siguiente.
  • -nd: no crea subdirectorios locales, guarda todos los ficheros en el mismo lugar.
  • -N: respeta la marca de tiempo del archivo original y solo descarga si hay cambios.
  • -np: evita subir a directorios padre.
  • -A.mp3: limita las descargas a archivos con extensión .mp3.
  • -erobots=off: ignora las restricciones de robots.txt para explorar todos los directorios.
  • -i sitiosmp3.txt: lee la lista inicial de sitios a rastrear desde el fichero sitiosmp3.txt.

Comandos así permiten montar procesos automatizados que se ejecutan a diario mediante cron, descargando solo los ficheros nuevos gracias a la opción -N y manteniendo un repositorio local siempre actualizado.

Opciones útiles adicionales y buenas prácticas de seguridad

Además de todo lo anterior, wget incorpora otros parámetros muy prácticos para controlar su comportamiento. Algunos de los más interesantes son:

  • -b: ejecuta la descarga en segundo plano, ideal para scripts o sesiones remotas.
  • -t 10: define un número concreto de reintentos ante errores temporales.
  • –limit-rate=200k: ajusta el máximo de ancho de banda por descarga a una cantidad específica.
  • -p: cuando descargas páginas HTML, arrastra también imágenes, CSS y otros recursos.
  • –convert-links: transforma enlaces absolutos en relativos para trabajar offline.

Eso sí, conviene usar wget con un mínimo de cuidado para no causar problemas ni de seguridad ni de consumo de recursos. Algunas recomendaciones básicas son:

  • Verifica siempre la URL antes de descargar nada, especialmente si ejecutas el comando como root, para evitar bajar malware o contenidos no deseados.
  • Comprende las opciones que usas, sobre todo las de recursión (-r, –mirror, -H, -np) para no acabar descargando más datos de los que querías ni saturar un servidor.
  • Controla la recursividad para no traerte sitios enormes; ajustar -l y -np ayuda a limitar el alcance del rastreo.
  • Respeta robots.txt siempre que sea posible, salvo que tengas permiso explícito para ignorarlo, ya que marca las zonas de la web que sus dueños prefieren no exponer a arañas y descargadores.
  • Límites de velocidad con –limit-rate son muy recomendables en redes compartidas para no fastidiar al resto de usuarios.
  • No desactives la validación HTTPS a menos que sepas muy bien lo que haces; los certificados se comprueban por defecto y son una capa de seguridad importante.

Todo este conjunto de funcionalidades convierte a wget en una navaja suiza para descargar contenido en Linux: desde bajar un simple archivo con un comando corto hasta clonar sitios completos, filtrar tipos concretos de ficheros, continuar descargas interrumpidas, trabajar con FTP o generar informes de enlaces rotos, siempre desde la terminal y con opciones que se pueden automatizar muy fácilmente en scripts y cron jobs.