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
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
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
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
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
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 elinks
, w3m
, 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.