El comando wget es otra herramienta potente en Linux diseñada para descargar archivos desde servidores web o FTP. Es no interactivo, lo que significa que puede ejecutarse en segundo plano o en scripts sin necesidad de intervención del usuario. A diferencia de curl, wget se centra en la descarga de archivos y la replicación de contenidos web, siendo ideal para descargas recursivas y tareas de automatización.
Sintaxis básica del comando wget
wget [opciones] [URL]
- opciones: Varias banderas para personalizar el comportamiento de wget.
- URL: La dirección del recurso que deseas descargar.
Ejemplos comunes
- Descargar un Archivo Simple
wget https://example.com/archivo.txt
#en el directorio actual te descarga el archivo si existe, en este caso archivo.txt
- Descargar con un Nombre Específico
wget -O nombre_personalizado.txt https://example.com/archivo.txt
#-O: Especifica un nombre personalizado para el archivo descargado.
- Descargar en Segundo Plano
wget -b https://example.com/archivo_grande.zip
#-b: Inicia la descarga en segundo plano.
- Reanudar una Descarga
wget -c https://example.com/archivo_grande.zip
#-c: Reanuda una descarga interrumpida si es posible.
- Descargas Recursivas
wget -r https://example.com/directorio/
#-r: Descarga recursivamente todos los archivos y subdirectorios.
- Espejo de un Sitio Web
wget -m https://example.com
#-m: Crea un espejo del sitio, descargando su contenido de manera estructurada.
- Limitar la Velocidad de Descarga
wget --limit-rate=200k https://example.com/archivo.zip
#--limit-rate: Establece un límite de velocidad.
- Usar Autenticación
wget --user=usuario --password=contraseña https://example.com/protegido
#--user y --password: Especifican credenciales para recursos protegidos.
- Ignorar Certificados SSL
wget --no-check-certificate https://example.com/protegido
#--no-check-certificate: Omite la verificación del certificado SSL
- Descargar Archivos de una Lista
wget -i lista_urls.txt
#-i: Especifica un archivo con una lista de URLs para descargar.
Opciones Comunes del comando wget
-q: Modo silencioso; #no muestra la salida en la terminal.
-nv: Modo no verboso; #muestra menos detalles que el predeterminado.
--progress=bar: #Cambia el estilo de la barra de progreso.
--timestamping: #Descarga solo archivos nuevos o modificados.
wget -N https://example.com/archivo.txt
-p: #Descarga todos los archivos necesarios para que una página HTML funcione correctamente.
wget -p https://example.com/pagina.html
--wait: #Introduce una pausa entre descargas (útil para no saturar el servidor).
wget --wait=5 -r https://example.com
--random-wait: #Introduce una pausa aleatoria entre descargas para simular navegación humana.
Ejemplo de descarga completa de un sitio
Supongamos que deseas descargar un sitio web entero para referencia local:
wget -m -k -p -E https://example.com
- -m: Activa el modo espejo.
- -k: Convierte los enlaces para que funcionen localmente.
- -p: Descarga archivos necesarios para que las páginas funcionen (imágenes, CSS, etc.).
- -E: Cambia las extensiones de las páginas a .html.
Diferencias principales entre wget y curl
Característica | wget | curl |
---|---|---|
Propósito Principal | Descarga de archivos y contenido web. | Transferencia de datos (descarga y subida). |
Descargas Recursivas | Sí | No |
Reanudar Descargas | Sí (-c) | No tan directo, necesita scripting. |
Protocolos Compatibles | HTTP, HTTPS, FTP | HTTP, HTTPS, FTP, SFTP, SCP, y más. |
Buenas Prácticas del comando wget
- Usa –limit-rate y –wait para evitar sobrecargar servidores.
- Valida las URLs antes de descargarlas, especialmente si usas archivos de listas.
- Evita usar –no-check-certificate a menos que confíes plenamente en el servidor.
Conclusiones
El comando wget es una herramienta versátil y poderosa para descargar archivos desde la web. Permite realizar descargas simples, descargas recursivas para clonar sitios web, y ofrece opciones para renombrar archivos al descargarlos, entre otras funcionalidades. Su capacidad para manejar descargas de manera eficiente lo convierte en una herramienta esencial para usuarios de sistemas basados en Unix y otros entornos.
Pingback: Comando curl con ejemplos : Kamilinux