Download de Múltiplos Arquivos a Partir de uma Lista
Em cenários do mundo real, você geralmente precisa baixar vários arquivos. Digitar cada comando wget manualmente seria ineficiente. Felizmente, o wget pode baixar vários arquivos de uma lista, o que é perfeito para automação.
Criando um Arquivo com URLs
Primeiro, vamos criar um arquivo de texto contendo as URLs dos arquivos que queremos baixar:
cd ~/project/download_resources
echo "https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz" > download_list.txt
echo "https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz" >> download_list.txt
echo "https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz" >> download_list.txt
Nestes comandos:
- O primeiro comando
echo cria um novo arquivo chamado download_list.txt e adiciona a primeira URL
- Os comandos
echo subsequentes anexam URLs adicionais ao arquivo usando >> (redirecionamento duplo)
Vamos verificar o conteúdo do nosso arquivo para garantir que está correto:
cat download_list.txt
Você deve ver três URLs, cada uma em sua própria linha:
https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz
https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
Usando wget com um Arquivo de Entrada
Agora podemos usar a opção -i com wget para ler URLs do nosso arquivo e baixar todos os arquivos:
wget -i download_list.txt
Este comando diz ao wget para ler as URLs de download_list.txt e baixar cada arquivo em sequência. Você verá a saída para cada download, semelhante a quando você baixou um único arquivo:
--2024-01-10 10:30:51-- https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
Resolving www.python.org (www.python.org)... 151.101.76.223, 2a04:4e42:12::223
Connecting to www.python.org (www.python.org)|151.101.76.223|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 22808518 (22M) [application/octet-stream]
Saving to: 'Python-3.7.0.tgz'
Python-3.7.0.tgz 100%[=============================================================>] 21.75M 25.9MB/s in 0.8s
2024-01-10 10:30:52 (25.9 MB/s) - 'Python-3.7.0.tgz' saved [22808518/22808518]
--2024-01-10 10:30:52-- https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz
...
Verificando os Arquivos Baixados
Após a conclusão dos downloads, vamos verificar se todos os arquivos foram baixados corretamente:
ls -lh Python-3.7.*
Você deve ver os três arquivos Python 3.7.x que baixamos da lista:
-rw-r--r-- 1 labex labex 22M Jan 10 10:30 Python-3.7.0.tgz
-rw-r--r-- 1 labex labex 22M Jan 10 10:30 Python-3.7.1.tgz
-rw-r--r-- 1 labex labex 22M Jan 10 10:31 Python-3.7.2.tgz
Criando um Script de Download em Lote
Para uso futuro, vamos criar um script de shell simples que pode baixar arquivos de uma lista. Isso demonstra como o wget pode ser usado em automação:
cd ~/project/download_resources
nano batch_download.sh
Insira o seguinte conteúdo no arquivo:
#!/bin/bash
## A simple script to download files from a list
if [ -f "$1" ]; then
echo "Downloading files from list: $1"
wget -i "$1"
else
echo "Error: File $1 not found"
exit 1
fi
Salve o arquivo pressionando Ctrl+O, depois Enter e saia com Ctrl+X.
Torne o script executável:
chmod +x batch_download.sh
Agora você pode usar este script para baixar arquivos de qualquer lista no futuro:
./batch_download.sh download_list.txt
Este comando faria a mesma coisa que nosso comando wget -i download_list.txt anterior, mas está encapsulado em um script que você pode reutilizar.