2 formas de descargar archivos desde la terminal de Linux

Using wget Linux
  • Save
Using wget Linux

Si estás en tu servidor un poco atascado y te preguntas ¿Cómo descargar desde la terminal en Linux un archivo? A continuación te daré algunos comandos para descargar archivos y páginas web.



En sí no hay un comando para descargar en Linux como tal, pero hay trucos para descargar estos archivos en mi caso particular uso Ubuntu, pero estos comandos son válidos para varias distribuciones de Linux.

Descargaremos archivos con el comando wget

wget es quizás la herramienta más poderosa para administrar descarga de archivos en línea de comandos desde Internet. Ofrece una amplia gama de opciones para controlar el proceso de descarga y admite varios protocolos de transferencia, incluidos HTTP, HTTPS y FTP, también nos permite bajar un solo archivo o un directorio completo incluso un sitio web completo.

Wget no es interactivo como un cliente de descarga de un navegador web, pero tiene algunas funciones como poder hacer descargas en segundo plano, lo que lo convierte muy conveniente para los script de automatización.

Instalación de wget

Muchas de las distribuciones hoy día de Linux vienen con wget, pero existe ejemplo consolas que no lo traen en este caso puedes instalarlo fácilmente usando el administrador de paquetes según tu distribución.

sudo apt install wget
apt-get install wget -y
apk add wget

Descargar un archivo o una página web mediante wget

En este caso solo tendremos que colocar la URL, comenzaría la descarga, con su nombre original y el directorio donde nos encontremos.

wget https://witmovil.com
  • Save

Descargar archivos con un nombre diferente usando wget

-O, –output-document: Especifica el nombre del archivo de salida en el que se guardará el contenido descargado, ya que como notaste en la anterior imagen de descargo como index.html, con este comando se colocaría el nombre qué nosotros queramos

wget -O nombre URL
  • Save

Reanudar las descargas incompletas

-c, –continue: Permite reanudar una descarga interrumpida, un ejemplo es cuando por accidente damos Control C.

wget -c 

Descargar una carpeta usando wget

-r, –recursive: Imaginemos que necesitamos descargar algo que está en un sitio web o en nuestros directorio FTP el comando a continuación descargara archivos desde un sitio web recursivamente, incluidos todos los enlaces y subdirectorios.

wget -r ftp://servicor.com/directorio

Descargue un sitio web completo usando wget

Si, se puede, puedes incluso duplicar un sitio web solo con wget. para aclarar hago referencia a la página web que se muestra al público.

Si bien puede usar la opción de espejo -m directamente, será una buena idea agregar:

  • –convert-links: los enlaces se convierten para que los enlaces internos apunten al recurso descargado en lugar de a la web
  • –page-requisites: descarga cosas adicionales como hojas de estilo para que las páginas se vean mejor sin conexión
wget -m --convert-links --page-requisites direccion_sitioweb
  • Save

Otras opciones

-l, –limit-rate=: Limita la velocidad de descarga.

–no-clobber: Evita sobrescribir un archivo existente con el mismo nombre.

Descargar archivos wget

Para descargar varios archivos tendríamos que usar un archivo de texto e incluir sus URL dentro, un ejemplo de como quedaría es:

wget -i download_archivo.txt

Descargar archivos desde la consola de Linux usando curl

Al igual que wget, curl es otra herramienta de línea de comandos versátil para transferir datos a través de varios protocolos. Además de descargar archivos, también puede recuperar páginas web y ejecutar comandos HTTP y otros, más adelante ondearemos en todas las formas.

Instalación de curl

En este caso curl no viene por defecto puedes instalarlo fácilmente usando el administrador de paquetes según tu distribución.

sudo apt install curl
apt-get install curl -y

apk add curl

Descargar archivos o páginas web usando curl

Si usas curl sin ninguna opción con una URL, leerá el archivo y lo imprimirá en la terminal.
la mejor forma de descargar con curl es:

-o, –output=: Especifica el nombre del archivo de salida en el que se guardará el contenido descargado.

curl -O URL

  • Save

En curl es más fácil descargar varios archivos, solo tienes que poner las URLs:

curl -O URL1 URL2 URL3

Solo ten presente que curl no es tan fácil como wget, este no guarda los archivos con un nombre específico, debes colocarlo manualmente, en el siguiente párrafo explico.

Descargar archivos con un nombre diferente

Es un poco extraño, pero debes usar un nombre personalizado para el archivo que vas a descargar.

curl -o nombre URL
  • Save

En ocasiones, curl podría no descargar el archivo como esperabas. Para asegurarte de que se descargue correctamente, debes utilizar la opción -L (para seguir la ubicación). Esto es necesario porque a veces los enlaces redirigen a otros enlaces, y con la opción -L, curl seguirá hasta el enlace final.

-L, –follow-location: Sigue las redirecciones, descargando el contenido de la URL final.

Pausar y reanudar la descarga con curl

De igual manera que se hace con wget, curl puede reanudar una descarga en pausa usando la opción -c:

curl -C URL

-s, --silent: Suprime la salida estándar, mostrando solo la información esencial.
-A, --user-agent=: Establece el agente de usuario de la solicitud.
-k, --insecure: Ignora los errores de certificado SSL.

Conclusión

Además de las opciones básicas, tanto wget como curl ofrecen numerosas opciones avanzadas para personalizar y controlar el proceso de descarga. Consultar la página del manual de cada comando para obtener más detalles. Como siempre, hay varias formas de hacer lo mismo en Linux, y la descarga de archivos desde el terminal no es diferente.

wget y curl son solo dos de los comandos más populares para descargar archivos en Linux. Existen más herramientas de línea de comandos de este tipo. Los navegadores web basados en terminales como elinksw3m, etc., también se pueden usar para descargar archivos en la línea de comandos.

Personalmente, para una descarga simple, prefiero usar wget en lugar de curl. Es más simple y menos confuso porque es posible que tenga dificultades para averiguar por qué curl no pudo descargar un archivo en el formato esperado.

Sus comentarios y sugerencias son bienvenidos.