You don't have access to this class

Keep learning! Join and start boosting your career

Aprovecha el precio especial y haz tu profesión a prueba de IA

Antes: $249

Currency
$209
Suscríbete

Termina en:

0 Días
6 Hrs
34 Min
5 Seg
Curso de Programación en Bash Shell

Curso de Programación en Bash Shell

Marco Antonio Toscano Freire

Marco Antonio Toscano Freire

Descargar información de Internet

16/43
Resources

How to download a file from the Internet using Bash?

Downloading files from the Internet is a common and essential task in programming and server administration environments. In this article, you will learn step by step how to download using Bash, specifically with the wget command. This process is essential when generating installation scripts that need to obtain resources from the network.

What is wget and how is it used?

wget is a popular line command in Linux that allows you to download files from the Internet. This command is extremely useful in Bash scripts, as it makes it easy to automate downloads without user intervention.

To get started with wget:

  1. Check your environment: make sure you are in the terminal of a Linux-based operating system, preferably Ubuntu. In our case, the work will be done on an Ubuntu server.

  2. Create a Bash script: You will need to create a .sh file. In this case, we will name it 10-for-download.sh.

  3. Start the script:

    • Use nano or your favorite text editor.
    • Press the I key to enter insert mode.
    • Add the initial line #!/bin/bash so that the system recognizes the script as a Bash executable file.
  4. Add a descriptive comment: write a comment explaining the purpose of the script. For example:

    # Program to exemplify the use of downloading information from the internet using the wget command.
  5. Print an informative title: This helps to maintain a clear structure in your script:

    echo "Download information from the internet"
  6. Type the wget command: use wget followed by the URL of the file you want to download. Example:

    wgethttp://www.duess.apache.org/this.tomcat/apache-t omcat-8.5.35.zip

How to set up and run the script?

Once you have written the script, it is crucial to set the permissions and run the file:

  1. Save the file: Press ESC, followed by :wq to save and exit.

  2. Modify permissions: Use chmod to make the script executable.

    chmod +x 10-to-download.sh
  3. Run the script: Simply run the script in the terminal to start the download:

    ./10-for-download.sh

How to verify the download and internet connection?

Once the script is executed, if everything is correct:

  • Internet connection: The wget needs connectivity, which you can verify with a simple ping to a trusted address, for example, ping google.com.

  • Stop a process: If you need to stop the process, use Ctrl + C.

  • Verify the downloaded file: Use the ls command to list the files in the directory and confirm that the file was downloaded correctly.

    ls

Additional considerations

  • Correct URL: Make sure that the URL of the file you want to download is correct. You can obtain it by right-clicking on the link in a browser and selecting "Copy URL" or "Copy Link".

  • Console Versatility: Unlike graphical interfaces, in the console there is a need to manually enter the URL.

With these steps, you now have the basis for using wget in your Bash scripts to manage downloads efficiently. Keep exploring and improving your Bash scripting skills.

Keep practicing and discover more ways to automate your daily tasks with Bash!

Contributions 86

Questions 6

Sort by:

Want to see more contributions, questions and answers from the community?

Yo recomiendo:

  • Para archivos pequeños ~> wget
  • Para comunicarse con un servicio (por ejemplo, una API Restful) ~> curl
  • Para archivos de tamaño considerable ~> aria2

aria2 es genial porque soporta multiples protocolos como BitTorrent y FTP, además de soportar descargas en paralelo.

Me quede con una duda de esta clase.!!!
Imaginemos este escenario: ¿Estamos trabajando por consola en un servidor, y nos piden URGENTE!!! descargar un programa?
Como no tenemos opción gráfica, que posibles soluciones:…usas tu celular para averiguar la url, llamas a alguien te ayude, usas un PC o Laptop con Graficos para navegar…pero NO hay opciones y lo necesitamos URGENTE. Me puse a pensar y me acorde de la clase de “Curso de Introducción a la Terminal y Línea de Comandos” que esta aquí en Platzi, donde se hablo del programa LYNX (Navegador web por consola), lo instale: apt-get install lynx
Lo importante aquí es saber la url raiz de la pagina que necesitamos ingresar, y pondré el mismo ejemplo de bajar el “TOMCAT”, y tener 2 terminales abiertos donde en uno vamos viendo la ruta y en el otro realizaremos la descarga.
Como sabemos el link principal: https://downloads.apache.org - colocamos en consola:
lynx https://downloads.apache.org
Al navegar con las flecha abajo y enter o flecha derecha vamos navegando y entrando hasta el programa que necesitamos, obvio buscamos la versión que nos interesa…en este caso extensión “.zip” y vamos typeando en el otro terminal:
wget + PATH RAIZ + lo que nos muestra en la parte superior el segmento “Index of” y listoooo programa bajado!!!

  • No se… y no aparece como copiar y pegar una url desde lynx, lo que si encontré como bajar los links de otra forma, pero hay que hacer mas pruebas…
    Por si acaso: lynx -dump https://downloads.apache.org | awk ‘/http/{print $2}’ > links.txt
    Y te creara un archivo liks.txt en la carpeta actual con las url, pero de la raíz…!!!

¿Tienes mac?, instala este comando si quieres wget:
brew install wget

Actualizado 05/2022:

wget https://downloads.apache.org/tomcat/tomcat-10/v10.0.20/bin/apache-tomcat-10.0.20-deployer.tar.gz

Link actualizado 20/Sep/2020:

https://downloads.apache.org/tomcat/tomcat-9/v9.0.38/bin/apache-tomcat-9.0.38.zip
Actualizado al 14/02/2024 [**https://dlcdn.apache.org/**](https://dlcdn.apache.org/). Si no les sirve, busquen aquí, el primer link que vena ese sirve: <https://tomcat.apache.org/download-80.cgi>

No entendiste que descargaste en la clase? Yo tampoco! (Ahorita miro que es Apache, lo juro)
Pero aun así quieres usar wget? Puedes ir a tu buscador de confianza, buscar una imagen, copiar su link. Y con wget podras descargala desde la terminal!!!
Pero puedes hacer más! Si estas es una distro de linux con un programa que te deja ver imagenes, puedes mirar cual es el comando de ese programa, pasarle como parametro la imagen descargada,Y desde la comodidad de su shell podras DESCARGAR, ABRIR y MIRAR una imagen.

Yo hice el código para que descargara un perro y lo abriera con viewnior, el programa que mencionaba.

#!/bin/bash

wget https://www.publicdomainpictures.net/pictures/40000/velka/rough-collie-dog-1365447402YrJ.jpg \
    -O cute_dog.jpg

viewnior ./cute_dog.jpg

Actualizado 24/07/23
https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.91/bin/apache-tomcat-8.5.91-deployer.zip

Aquí está el link de las distros por si ingresan al curso en fechas posteriores: https://archive.apache.org/dist/tomcat/

Si estas en Mac usa “curl”

Companeros, Para que funcione la descarga hay que remplazar el el 35 por 39 de esta manera:
/tomcat-8/v8.5.39/

Mejorando un poco el código usando lo visto hasta ahora... \# !/bin/bash# Programa para ejemplificar el uso de la descarga de información desde internet usando el comando wget url="" echo "Descargar información de internet" echo "Pega la URL a descargar: " read -p "URL:" url wget $url

Enlace actualizado
24/02/2022
https://downloads.apache.org/tomcat/tomcat-8/v8.5.75/bin/apache-tomcat-8.5.75.zip

O si ven el video en otra fecha pueden ir a esta ruta:
https://downloads.apache.org/tomcat/

E ir buscando la versión que deseen

Enlace Tomcat Apache Actualizado a Feb 2022:

# !/bin/bash
# Programa para ejemplificar el uso de la descarga de información desde internet utilizando el comando wget

echo "Descargar información de internet"
wget https://downloads.apache.org/tomcat/tomcat-8/v8.5.75/bin/apache-tomcat-8.5.75.zip

Bueno, como muchos tenían problemas con que ya no existía cierta versión hice un poco de webscrapping para conocer la última versión disponible:
https://downloads.apache.org/tomcat/tomcat-8/

Para todo lo de webscrapping con Bash les dejo el siguiente enlace:
https://data36.com/web-scraping-tutorial-episode-1-scraping-a-webpage-with-bash/

#!/bin/bash
# Program to webscrapping and download from web

# Because the version of Tomcat can change
# We need to check the current version

# Webscrapping
link="https://downloads.apache.org/tomcat/tomcat-8/"

# html2text is not built-in, you need to install it
# use sed to remove the lines above & below the line you want
currVersion=$(curl $link | html2text | sed -n '/\[DIR\]/,$p' | sed -n '/KEYS/q:p' )

# delimiter
IFS=' '

# split currVersion
read -a strarr <<< "$currVersion"

versionReg="^v([0-9]+)\.([0-9]+)\.([0-9]+)\/$"

version=""

# Get only the part containing the version
for val in "${strarr[@]}";
do
	if [[ $val =~ $versionReg ]]; then
		version=$val
	fi
done

# Create the url to get to the website download
download="https://downloads.apache.org/tomcat/tomcat-8/"$version"bin"
version=${version:1:-1}

fullLink=$download"/apache-tomcat-"$version".zip

echo $fullLink

# use wget to download the file
wget $fullLink

Recorte la URL con Cuttly para evitar escribir todo, es la url para descargar todos los archivos del curso, desde el repo del Profe github

# ! /bin/bash
# Programa para descarga de archivos con WGET

echo "Descarga de archivos del curso Programacion Bash Shell desde el tema https://github.com/martosfre con el tema de URL recortada con Cuttly"

wget https://cutt.ly/matosfre-github

No sabia que eso se podía hacer, es muy interesante

Para actualizar click https://downloads.apache.org/tomcat/tomcat-8/
ir a carpeta de versión actualizada a la fecha
De ahi a bin y checar la versión actual.
Para mi caso el 18/11/2020 fue la siguiente: https://downloads.apache.org/tomcat/tomcat-8/v8.5.60/bin/

Link actualizado 9-12-2020

https://downloads.apache.org/tomcat/tomcat-9/v9.0.41/bin/apache-tomcat-9.0.41.zip

Nunca pares de aprender, aun siendo en pandemia

Listo – Actualizada a al última versión de TomCat

#!/bin/bash
 # Descargar paquetes o softwar

 echo "Descargar información de internet"
 wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.36/bin/apache-tomcat-9.0.36.zip
Y si quiero descargar el apache tomcat y descomprimirlo en el mismo script? Inicialmente intenté sin éxito con: ```txt wget https://dlcdn.apache.org/tomcat/tomcat-11/v11.0.3/bin/apache-tomcat-11.0.3.zip | unzip ``` No tuve éxito ya que el comando wget se toma mas tiempo (mientras descarga el archivo) que el unzip. Finalmente luego de una corta busqueda en google: ```txt echo "Descargando informacion de internet" tempFile=`mktemp` echo "We are inside $PWD" echo -e "\n" wget https://dlcdn.apache.org/tomcat/tomcat-11/v11.0.3/bin/apache-tomcat-11.0.3.zip -O $tempFile unzip $tempFile rm $tempFile ``` Con el comando `mktemp` podemos crear un archivo/directorio temporal al cual le asignamos el archivo descargado con el parametro `-O` en el `wget`. Finalmente podremos descomprimirlo y borrarlo.
Link actualizado en diciembre 2024: <https://dlcdn.apache.org/tomcat/tomcat-11/v11.0.1/bin/apache-tomcat-11.0.1.zip>
Actualizado al 21/06/2024 <https://downloads.apache.org/tomcat/tomcat-8/v8.5.100/bin/apache-tomcat-8.5.100.zip>
enlace actualizado al 16/06/2024 <https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.100/bin/apache-tomcat-8.5.100.zip>
Enlace actualizado Mayo de 2024: <https://downloads.apache.org/tomcat/tomcat-8/v8.5.100/bin/apache-tomcat-8.5.100.zip>
link tomcat10 08/05/2024 https://[downloads.apache.org/tomcat/tomcat-10/v10.1.23/bin/apache-tomcat-10.1.23.zip.sha512](https://downloads.apache.org/tomcat/tomcat-10/v10.1.23/bin/apache-tomcat-10.1.23.zip.sha512)
Link funcional a fecha de dic/2023: * <https://downloads.apache.org/tomcat/tomcat-8/v8.5.96/bin/apache-tomcat-8.5.96.zip> En caso de no funcionar busquen desde: * <https://downloads.apache.org/tomcat/tomcat-8/>
Link actualizado a octubre 2023 <https://downloads.apache.org/tomcat/tomcat-8/v8.5.95/bin/apache-tomcat-8.5.95.zip>
2023-17-10 [`https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.95/bin/apache-tomcat-8.5.95.zip`](https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.95/bin/apache-tomcat-8.5.95.zip)

para la fecha en que estoy tomando el curso el url ya ha sido actualizada nuevamente ya que la versión cambio

wget https://downloads.apache.org/tomcat/tomcat-8/v8.5.93/bin/apache-tomcat-8.5.93.zip

a 15/sep/2023

# !/bin/bash
# Obtener recursos del curso de la clase 9

wget https://github.com/martosfre/curso_programacion_bash_platzi/archive/9.DescargarInformacionInternet.zip
unzip 9.DescargarInformacionInternet.zip
RED="\e[31m"
ENDCOLOR="\e[0m"
echo -e "\n"
echo -e "${RED}Estos son los scripts hasta la clase 9${ENDCOLOR}"
ls curso_programacion_bash_platzi-9.DescargarInformacionInternet/*

No olviden dar permisos de ejecución.

ya me estoy sintiendo todo un hacker 😉

# !/bin/bash
# 10_download.sh
# Programa para descargar desde internet wget

echo "Descargar informacion de internet"

wget https://downloads.apache.org/tomcat/tomcat-8/v8.5.87/bin/apache-tomcat-8.5.87.zip

Ruta actualizada para 16/04/23
https://downloads.apache.org/tomcat/tomcat-8/v8.5.87/bin/apache-tomcat-8.5.87.zip

Link actualizado:

wget https://downloads.apache.org/tomcat/tomcat-8/v8.5.87/bin/apache-tomcat-8.5.87.zip

Actualizado a la fecha:

https://downloads.apache.org/tomcat/tomcat-8/v8.5.85/bin/apache-tomcat-8.5.85.zip

Para quienes vengan en el futuro y quieran la version mas reciente, la pueden encontrar en:

https://downloads.apache.org/tomcat/tomcat-8/v8.5.85/bin/?C=M;O=A

Actulizacion de link
Apache Tomcat Link

  • ¿ Cómo conectarse a internet y descargarse un archivo?
    usuario ------> internet ------> archivo
    entre el usuario y el internet está el ( wget ) .

Con la ultima version de tomcat 8.5.79 pude descargar la informacion.
Gracias!!!


Que maravilla.

Después de haber probado varias aportaciones publicadas en este espacio y que no me funcionaron, fuí directamente al sitio donde se encuentras las versiones más recientes de la versión 8.5:

Apache TomCat 8.5
De allí copié la URL del binario(*.zip)
https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.75/bin/apache-tomcat-8.5.75.zip

la cuál si me funcionó!

Saludos desde Villahermosa, Tab. Méx.

Debido a que las versiones están cambiando a la fecha de hoy, encontré el enlace de la siguiente manera:

  • Ingrese a la página principal de apache y en el buscador coloque tomcat y tome la versión 9, me lleva a otra pagina, y en la parte inferior escogí el .zip y me funciono.

No lo puedo descargar, para Mac es lo mismo?

Para los que este usando maquinas virtuales en mejor utilizar el cmd o otra consola como -> Cmder
se conecta via SSH a su maquina vitual

  1. primero debe saber la IP de tu maquina virtual - digita ifconfig
    la direccion ip sera algo como 192.168.X.X
  2. luego abrimos CMDER
  3. ssh tuUsario@ip -22
  4. Escribir el password de tu maquina virutal y de esta manera podran copiar y pegar.

Otra opcion para descargar sería:
curl https://www-us.apache.org/dist/tomcat/tomcat-8/v8.5.46/bin/apache-tomcat-8.5.46.zip -o apache-tomcat-8.5.46.zip

Me funcionó perfecto !

#!/usr/bin/env bash
#lec_10_file.sh
#  bash lec_10_file.sh
echo "Downloading a page"
wget https://eeo.eaoe.cc/fa89ff46066acbd1887fd1400867ff6f/wFPPunMQbdU

Alguien que me ayude con esto, gracias de antemano:
Descargar info de la web
–2019-08-25 17:30:45-- https://www-us.apache.org/dist/tomcat/tomcat-8/v8.5.41/bin/apache-tomcat-8.5.41.zip
Resolving www-us.apache.org (www-us.apache.org)… 40.79.78.1
Connecting to www-us.apache.org (www-us.apache.org)|40.79.78.1|:443… connected.
HTTP request sent, awaiting response… 404 Not Found
2019-08-25 17:30:46 ERROR 404: Not Found.

Muy buen curso la verdad.

Y que es el programa que descargo?

genial

<h1>!/bin/bash</h1> <h1>Programa para descargar - paquetes o software desde Internet</h1> <h1>Autor: Paul Manrique</h1>

echo "Descargar información de internet"
wget https://downloads.apache.org/tomcat/tomcat-10/v10.0.0-M6/bin/apache-tomcat-10.0.0-M6.zip

Este es mi pequeño proyecto, se llama puppy downloader y sirve para descargar imagenes de perros 😃

Code:

#!/bin/bash

echo "----------↓↓-------------"
echo ""

echo "Puppy image downloader:"
sleep 1s
FOLDER_PATH=/home/$USER/Pictures/puppies

if [ -d "$FOLDER_PATH" ]; then #checks if there is a folder for puppies
	echo -e "Folder path: $FOLDER_PATH\nStatus: exists"
	sleep 1s
	echo ""
	echo "good to continue..."
else
	mkdir $FOLDER_PATH
	echo -e "Folder path: $FOLDER_PATH\nStatus: created succesfuly!"
	sleep 1s
	echo ""
	echo "good to continue..."
fi

echo "--Enter the following information--"

echo ""
read -p "Copy and paste the url here: " u_url
read -p "Type the output file name: " f_name

echo ""
echo "downloading puppy..."
echo ""
cd $FOLDER_PATH
wget -q -O $f_name $u_url #downloads the image

sleep 1s
echo ""
echo "Done!"
echo ""

Output:

bash b29.sh
----------↓↓-------------

Puppy image downloader:
Folder path: /home/sebas5758/Pictures/puppies
Status: exists

good to continue...
--Enter the following information--

Copy and paste the url here: https://ichef.bbci.co.uk/news/410/cpsprodpb/EB24/production/_112669106_66030514-b1c2-4533-9230-272b8368e25f.jpg
Type the output file name: pomeranian(3)   

downloading puppy...


Done!


Hola, dejo mis apuntes… saludos.

# ! /bin/bash
# programa para descargar información desde internet 
# Author: Diego Beltran tw @diguitodev hista @diegodevelops

echo "Descargar información de internet"
wget https://st4.depositphotos.com/36188500/38581/i/1600/depositphotos_385811360-stock-photo-woman-lingerie-dog-rose.jpg```

Copio el script con la URL actualizada a Octubre 2020.

<h1>!/bin/bash</h1>

#Programa para ejemplificar el uso de la descarga de la información desde Internet utilizando el comando wget

<h1>Jose Suarez</h1>

echo "Descargar información de Internet"
wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.38/bin/apache-tomcat-9.0.38.zip

# !/bin/bash
# Programa para ejemplificar el uso de la descarga de información desde internet utilizando el comando wget
# Autor: Martin Davila

echo "Descargar información de internet"
wget https://www-us.apache.org/dist/tomcat/tomcat-8/v8.5.35/bin/apache-tomcat-8.5.35.zip```