cURL e wget no Linux: qual é a diferença?
Se você perguntar a um grupo de usuários do Linux o que eles usam para baixar arquivos, alguns dirão wget
e outros dirão cURL
. Qual é a diferença e um é melhor que o outro?
Tudo começou com conexão
Pesquisadores do governo começaram a conectar várias redes já na década de 1960, resultando em redes interconectadas. Mas o nascimento da Internet como a conhecemos foi em 1º de janeiro de 1983, quando o protocolo TCP/IP foi implementado. Era o elo perdido. Isso permitiu que computadores e redes diferentes se comunicassem usando um padrão comum.
Em 1991, o CERN lançou seu software para a World Wide Web, que eles usaram internamente por vários anos. O interesse nessa sobreposição visual para a web foi imediato e generalizado. No final de 1994, havia 10.000 servidores web e 10 milhões de usuários .
Esses dois marcos – a Internet e a World Wide Web – representam lados muito diferentes da conectividade. Mas eles também compartilham muitos dos mesmos recursos.
Comunicação significa exatamente isso. Você está se conectando a algum dispositivo remoto, como um servidor. E você se conecta a ele porque tem algo que você precisa ou deseja. Mas como obter esse recurso hospedado remotamente na máquina local a partir da linha de comando do Linux?
Em 1996, surgiram dois utilitários que permitiam o download de recursos hospedados remotamente. Este é wget
o que saiu em janeiro, e cURL
que saiu em dezembro. Ambos funcionam na linha de comando do Linux. Ambos se conectam a servidores remotos e ambos buscam dados para você.
Mas não é apenas o caso usual que o Linux fornece duas ou mais ferramentas para fazer o mesmo trabalho. Esses utilitários têm diferentes finalidades e diferentes especializações. O problema é que eles são semelhantes o suficiente para causar confusão sobre qual usar e quando.
Considere dois cirurgiões. Você provavelmente não quer que um cirurgião oftalmologista faça uma cirurgia de ponte de safena em você, nem quer que um cirurgião cardíaco faça uma operação de catarata em você. Sim, ambos são profissionais médicos altamente qualificados, mas isso não significa que possam substituir um ao outro.
O mesmo vale para wget
e cURL
.
Diferentes propósitos, diferentes funções, algumas se sobrepõem
A letra “w” no wget
comando indica sua finalidade. Seu principal objetivo é carregar páginas da web ou até mesmo sites inteiros. Sua man
página o descreve como um utilitário para baixar arquivos da Internet usando os protocolos HTTP, HTTPS e FTP.
Pelo contrário, cURL
funciona com 26 protocolos, incluindo SCP, SFTP e SMSB, além de HTTPS. Sua man
página diz que é uma ferramenta para transferir dados de ou para um servidor. Ele não foi projetado especificamente para funcionar com sites. Ele foi projetado para se comunicar com servidores remotos usando qualquer um dos muitos protocolos de Internet suportados.
Portanto wget
, é predominantemente orientado a sites, cURL
enquanto funciona em um nível mais profundo, no nível da internet simples.
wget
pode recuperar páginas da Web e pode navegar recursivamente por estruturas de diretório inteiras em servidores da Web para baixar sites inteiros. Ele também pode definir os links nas páginas recuperadas para apontar corretamente para as páginas da Web em seu computador local, em vez de suas contrapartes em um servidor Web remoto.
cURL
permite que você interaja com um servidor remoto. Ele pode baixar arquivos e extraí-los. cURL
funciona com proxies SOCKS4 e SOCKS5 e HTTPS para proxies. Ele suporta a descompactação automática de arquivos compactados nos formatos GZIP, BROTLI e ZSTD. cURL
também permite que você baixe várias transferências em paralelo.
A sobreposição entre os dois é que wget
ambos cURL
permitem que você obtenha páginas da web e use servidores FTP.
Esta é apenas uma métrica aproximada, mas você pode ter uma ideia dos conjuntos de recursos relativos das duas ferramentas observando o comprimento de suas man
páginas. Em nossa máquina de teste, a página de manual para wget
tem 1433 linhas. A página man
para cURL
é uma gritante 5296 linhas.
Uma rápida olhada no wget
Como wget
faz parte do projeto GNU , você deve encontrá-lo pré-instalado em todas as distribuições Linux. É fácil de usar, especialmente para os usos mais comuns: download de páginas ou arquivos da web.
Basta usar wget
o comando com a URL da página da web ou arquivo remoto.
wget https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc
O arquivo é extraído e salvo em seu computador com o nome original.
Para salvar o arquivo com um novo nome, use a -O
opção (documento de saída).
wget -O word-file-test.doc https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc
O arquivo resultante é salvo com o nome que escolhemos.
Não use esta -O
opção ao pesquisar sites. Se você fizer isso, todos os arquivos extraídos serão adicionados a um.
Para obter todo o site, use o -m
parâmetro (espelho) e a URL da página inicial do site. Você também pode usar --page-requisites
para garantir que todos os arquivos de suporte necessários para exibir as páginas da Web corretamente também sejam carregados. Essa --convert-links
configuração configura os links no arquivo resultante para apontar para os destinos corretos em seu computador local, em vez de para locais externos no site.
Uma rápida olhada no cURL
cURL
é um projeto independente de código aberto. Ele vem pré-instalado no Manjaro 21 e no Fedora 36, mas precisava ser instalado no Ubuntu 21.04.
Este é o comando para instalar o cURL no Ubuntu.
sudo apt install curl
Para carregar o mesmo arquivo com wget
e salvá-lo com o mesmo nome, precisamos usar este comando. Observe que a -o
opção (sair) é escrita em letras minúsculas com cURL
.
curl -o word-file-test.doc https://file-examples.com/wp-content/uploads/2017/02/file-sample_100kB.doc
O arquivo foi baixado para nós. Uma barra de progresso ASCII é exibida durante o download.
Para se conectar a um servidor FTP e fazer upload de um arquivo, use a -u
opção (usuário) e especifique um par de nome de usuário/senha, assim:
curl -o test.png -u demo:password ftp://test.rebex.net/pub/example/KeyGenerator.png
Isso baixa e renomeia o arquivo do servidor FTP de teste.
Não há melhor
É impossível responder “Qual devo usar” sem perguntar “O que você está tentando fazer?”
Depois de entender o que wget
e o cURL
que fazer, você entenderá que eles não estão competindo. Eles não atendem ao mesmo requisito e não tentam fornecer a mesma funcionalidade.
Carregar páginas da web e sites é wget
onde está a excelência. Se é isso que você está fazendo, use wget
. Para todo o resto – como baixar ou usar qualquer um dos muitos outros protocolos – use cURL
.
Deixe um comentário