Si estás atrapado en la terminal de Linux, digamos en un servidor, ¿cómo descargas un archivo desde la terminal?
No hay un comando de descarga en Linux, pero hay un par de comandos de Linux para descargar archivos.
En este truco de terminal, aprenderás dos formas de descargar archivos usando la línea de comandos en Linux.
En mi caso, estaré usando Ubuntu, pero aparte de la instalación, el resto de los comandos son igualmente válidos para todas las demás distribuciones de Linux.
Descargando archivos desde la terminal de Linux usando el comando wget
wget es quizás el gestor de descargas de la línea de comandos más utilizado para Linux y sistemas tipo UNIX. Puedes descargar un solo archivo, varios archivos, un directorio entero o incluso un sitio web completo utilizando wget.
wget no es interactivo y puede trabajar fácilmente en segundo plano. Esto significa que puedes usarlo fácilmente en scripts o incluso construir herramientas como el gestor de descargas uGet.
¡Veamos cómo usar wget para descargar archivos desde la terminal!
Instalando wget
La mayoría de las distribuciones de Linux vienen con wget preinstalado. También está disponible en el repositorio de la mayoría de las distribuciones y puedes instalarlo fácilmente usando el gestor de paquetes de tu distribución.
En las distribuciones basadas en Ubuntu y Debian, puedes utilizar el comando del gestor de paquetes apt:
sudo apt install wget
Descargando un archivo o una página web con wget
Sólo tienes que proporcionar la URL del archivo o página web. Se descargará el archivo con su nombre original en el directorio en el que se encuentre.
wget URL
Para descargar varios archivos, tendrás que guardar sus URLs en un archivo de texto y proporcionar ese archivo de texto como entrada a wget de esta manera:
wget -i archivos_a_descargar.txt
Descargando archivos con un nombre diferente usando wget
Observará que una página web se guarda casi siempre como index.html con wget. Será una buena idea proporcionar un nombre personalizado al archivo descargado.
Puedes utilizar la opción -O (O mayúscula) para proporcionar el nombre del archivo de salida mientras se descarga.
wget -O nombre_del_archivo URL
Descargando una carpeta con wget
Supongamos que estás navegando por un servidor FTP y necesitas descargar un directorio entero, para ello puedes utilizar la opción recursiva
wget -r ftp://direccion-del-servidor.com/directorio
Descargando un sitio web completo usando wget
Sí, puedes hacerlo. Puedes reflejar un sitio web completo con wget con esto me refiero a toda la estructura del sitio web de cara al público.
Aunque puedes usar la opción -m directamente, sería una buena idea añadir:
- –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 fuera de línea
wget -m --convert-links --page-requisites direccion_del_sitio_web
Consejo de bonificación: Reanudar descargas incompletas
Si ha abortado la descarga pulsando C por alguna razón, puede reanudar la descarga anterior con la opción -c.
wget -c
Descargando archivos desde la línea de comandos de Linux usando curl
Como wget, curl es también uno de los comandos más populares para descargar archivos en la terminal de Linux. Hay muchas maneras de usar curl ampliamente, pero aquí me centraré sólo en la descarga simple.
Instalando curl
Aunque curl no viene preinstalado, está disponible en los repositorios oficiales de la mayoría de las distribuciones. Puedes utilizar el gestor de paquetes de tu distribución para instalarlo.
Para instalar curl en Ubuntu y otras distribuciones basadas en Debian, utiliza el siguiente comando:
sudo apt install curl
Descargar archivos o páginas web usando curl
Si utilizas curl sin ninguna opción con una URL, leerá el archivo y lo imprimirá en la pantalla del terminal.
Para descargar un archivo usando el comando curl en la terminal de Linux, tendrá que usar la opción -O (O mayúscula):
curl -O URL
Es más sencillo descargar múltiples archivos en Linux con curl. Sólo tienes que especificar múltiples URLs:
curl -O URL1 URL2 URL3
Ten en cuenta que curl no es tan simple como wget. Mientras que wget guarda las páginas web como index.html, curl se quejará de que el archivo remoto no tiene un nombre para las páginas web. Tendrás que guardarlo con un nombre personalizado como se describe en la siguiente sección.
Descargar archivos con un nombre diferente
Podría ser confuso, pero para proporcionar un nombre personalizado para el archivo descargado (en lugar del nombre original de la fuente), tendrá que utilizar la opción -o (O minúscula):
curl -o nombre_del_archivo URL
Algunas veces, curl no descargará el archivo como se espera. Tendrás que usar la opción -L (para la localización) para descargarlo correctamente. Esto es porque algunas veces los enlaces redirigen a algún otro enlace y con la opción -L, sigue el enlace final.
Pausar y reanudar la descarga con curl
Al igual que wget, también puedes reanudar una descarga pausada usando curl con la opción -c:
curl -C URL
Como siempre, hay múltiples formas de hacer lo mismo en Linux. Descargar archivos desde la terminal no es diferente.
wget y curl son sólo dos de los comandos más populares para descargar archivos en Linux. Hay más herramientas de línea de comandos de este tipo. Los navegadores web basados en la terminal, como elinks, w3m, etc., también pueden utilizarse para descargar archivos en la línea de comandos.
Personalmente, para una simple descarga, prefiero usar wget sobre curl. Es más sencillo y menos confuso, ya que puede ser difícil averiguar por qué curl no pudo descargar un archivo en el formato esperado.
Tus comentarios y sugerencias son bienvenidos.