Aprenda a explorar o comando wget

Muita gente instala utilitários de download, mesmo sem saber que seu Linux já possui o melhor utilitário que existe: wget.


Aprenda a explorar o comando wget

Introdução

O GNU Wget ou simplesmente wget é um utilitário gratuito para download não interativo de arquivos da Web criado em Linguagem C pelo Projeto GNU como o próprio nome correto sugere. Suporta os protocolos HTTP, HTTPS e FTP, bem como a recuperação através de proxies HTTP.

Instalação

A maioria das distribuições Linux já possuem o wget instalado por padrão, mas se por algum motivo não houver utilize o gerenciador de pacotes da sua distribuição para instalar que, com certeza, o wget está no repositório, não só das distros Linux como nos sistemas baseados em BSD, exemplos:

pacman -S wget
pkg install wget

1 - Uso básico

Se você quiser você pode omitir o http, https, ftp,… , ele reconhece os protocolos automaticamente. Se você baixar um arquivo de mesmo nome, ele não sobrescreve o arquivo que já possui, baixa automaticamente com o mesmo nome, mas o .1 , se já tiver tb o .1, ele baixa como .2, e assim sucessivamente, depois do final do nome/extensão do arquivo, ex.: arquivo.iso.1 , depois

wget https://site.com/arquivo.iso

É possível baixa múltiplos arquivos, ex.: wget http://site.com/file.fs ftp.site.com/doc.txt ... , ou até mesmo usar o parâmetro -i e logo depois informar o arquivo que contém os links (geralmente linha por linha, até mesmo separados pôr linhas em branco).

2 - Salvando com um nome definido pelo usuário

O redirecionamento de stdout com o símbolo ‘>’ não funciona no wget, o arquivo que você pediu é criado, mas ele fica com 0 bytes, ou seja, vazio . Pra redirecionar e salvar num arquivo definido pelo usuário, deve-se usar o parâmetro ‘-O’ (letra O maiúsculo)

Como os parâmetros são tratados com getopt , a ordem é indiferente, desde que o nome do arquivo venha depois do -O pra gerar o OPTARG .

wget https://site.com/arquivo.iso -O novo_nome.iso # funciona
wget -O novo_nome.iso https://site.com/arquivo.iso # funciona
wget -O https://site.com/arquivo.iso novo_nome.iso # NÃO funciona
wget novo_nome.iso https://site.com/arquivo.iso -O # NÃO funciona

Com o parâmetro -P , além de criar um arquivo vc ainda cria o(s) diretórios que você deseja que ele seja salvo:

wget https://site.com/arquivo.iso -P caminho/aqui/novo_nome.iso

3 - Você também pode limitar a velocidade do download

Muito utilizado quando você não deseja usar toda banda da sua rede, com --limit-rate

wget --limit-rate=100k https://site.com/arquivo.iso

4 - Retomar um download cancelado

Se você tiver fazendo um download e quiser pausar ou alterar a velocidade do limit-rate , você pode teclar Ctrl+c para pausar o download e depois retomar, basta usar o parâmetro ‘-c’:

wget -c https://site.com/arquivo.iso # retomando com a banda total disponível.
wget -c --limit-rate=150k https://site.com/arquivo.iso # retomando com uma velocidade MAIOR.
wget -c --limit-rate=64k https://site.com/arquivo.iso # retomando com uma velocidade MENOR.

Se quiser você fechar o terminal, ou desligar pra retomar outro dia se desejar.

5 - Deixando o download em background

Com o parâmetro ‘-b’

wget -b https://site.com/arquivo.iso

Automaticamente ele cria um arquivo no diretório do download com nome wget-log e você pode acompanhar esse download com o comando tail -f wget-log.

Detalhe que você fechar o terminal e até deslogar que o download continua, se logar com outro usuário basta procurar o o PID do processo ps -U [nome_do_usuário] e se quiser terminá-lo , use o comando: sudo kill -9 [número_do_processo_visto_com_ps]

Vc ainda pode retomar ele com ‘-c’ como vimos e pôr em background novamente com ‘-c -b’ , lembrando que com esse comando ele não faz um novo download, mas criar um novo arquivo wget-log.1 para você acompanhar, a menos que você já tenha excluído o arquivo anterior.

Você também poderia usar o nohup a gente detalha sobre ele e processos de forma profunda no Curso Extremamente Avançado de Shell Script

6 - Entre outras opções:

  • --pinnedpubkey=[arquivo_com_a_hash] - Especifica uma hash pro wget , você também pode usar --keep-badhash
  • --no-check-certificate - Ignora o certificado para sites que lhe obrigarem informar.
  • --use=[nome_de_usuário] e --password=[senha_do_usuário] , ou especificar com o protocolo ex.: --http-password - para logins em ftp e proxy .
  • -r - baixa sites completos , com todos os arquivos e subdiretórios.

Para mais informações consulte o book completo oficial do Projeto GNU: https://www.gnu.org/software/wget/manual/wget.html ou a 1º página do man: man 1 wget

Assista ao vídeo

Quer ficar fera no Terminal e em comandos Linux ?

Conheça nossos cursos de Shell Script e entre outros.

Comente!

Valeu!


gnu wget dicas


Compartilhe


Nosso canal no Youtube

Inscreva-se


Marcos Oliveira

Marcos Oliveira

Desenvolvedor de software
https://github.com/terroo


Crie Aplicativos Gráficos para Linux e Windows com C++

Aprenda C++ Moderno e crie Games, Programas CLI, GUI e TUI de forma fácil.

Saiba Mais

Receba as novidades no seu e-mail!

Após cadastro e confirmação do e-mail, enviaremos semanalmente resumos e também sempre que houver novidades por aqui para que você mantenha-se atualizado!