Baixar arquivo ZIP com o comando curl

Respostas:

36

Eu usei curl -LOe funcionou bem. wgetfunciona também

Ziyaddin Sadigov
fonte
Trabalhou para mim. usando o Windows 7
fedmich
20

Tente wget em vez de enrolar: wget http://github.com/ziyaddin/xampp/archive/master.zip

don.joey
fonte
1
O downvoter pode explicar? Ou é o outro pôster?
don.joey
4
Você poderia explicar por que em wgetvez de curl?
Jorge Bucaran
1
menos linhas de comando (se você se importa) - o que significa menos opções, mas a maior diferença é que o apoio wget recursivo de download
Ran Davidovitz
Não sei porque, mas eu tinha uma emissão de erro unzipno arquivo baixado com curl, e funcionou muito bem comwget
Dinei
15

Você pode usar:

curl https://github.com/ziyaddin/xampp/archive/master.zip -O -J -L

Salva como: xampp-cli-master.zip

  • use -Lno caso de um redirecionamento encontrado.
  • use -Opara nomes de arquivos remotos ( master.zip)
  • use -J(use with -O) para permitir o nome do arquivo de cabeçalho remoto ( xampp-cli-master.zip)


Ou use -opara criar seu próprio nome de arquivo:

curl https://github.com/ziyaddin/xampp/archive/master.zip -L -o MyFilename.zip

Salva como: MyFilename.zip

Nota: (o GitHub suporta SSL - use https://)


Você também pode usar um curlrc arquivo de configuração ou o apelido de comando CURL curl -O -Lpara permitir que ele funcione de maneira semelhante ao WGET.

Consulte: https://curl.haxx.se/docs/manpage.html#OPTIONS (consulte: -O , -J , -L , -o )

Observe o aviso de usar CURL com a opção -J:

Não há nenhuma tentativa de decodificar% -sequences (ainda) no nome do arquivo fornecido, portanto, esta opção pode fornecer nomes de arquivos bastante inesperados.

AVISO : Exercite o uso criterioso dessa opção, especialmente no Windows. Um servidor não autorizado pode enviar o nome de uma DLL ou outro arquivo que possa ser carregado automaticamente pelo Windows ou por algum software de terceiros.

bshea
fonte
5

Se você deseja baixar o arquivo, use wget [option]... [URL]....

Para mais informações sobre as opções, digite isso no seu Terminal: man wget

Para seu propósito:

wget http://github.com/ziyaddin/xampp/archive/master.zip

Observe que o arquivo .zip será salvo no diretório atual em que você está.

Meintjes
fonte
1
Seria útil explicar as vantagens de usar wgetmais de curl. Para quem quer saber as diferenças entre os dois veja aqui .
Jorge Bucaran
@JorgeBucaran Li a comparação escrita pelo autor de curlquem também contribui wgetem um papel menor. Uma omissão flagrante (com base no meu projeto de pequena uma vez) é que wget é 10 vezes mais rápidas do que onda (<2 segundos contra 12 segundos), a recuperação do nascer e do pôr do sol dehttps://www.timeanddate.com
WinEunuuchs2Unix
Portanto, às vezes, quando você usa o wget e o arquivo não é exibido diretamente, mas o URL informa a um serviço onde localizar e servir o arquivo, o que você acaba baixando é um html. Então curl é melhor para alguns arquivos
Zloy Smiertniy
3

Para baixar arquivos no GitHub (ou em qualquer outro site que faça redirecionamentos) usando curl, você deve passar -L(Seguir redirecionamentos), então use:

curl -L http://github.com/ziyaddin/xampp/archive/master.zip -o xampp.zip

Juliano Petronetto
fonte
1

"curl -LOk" o faz usar protocolos inseguros (-k), desabilita as verificações de certificado SSL (que falham devido ao caminho incorreto que não corresponde ao certificado) e cria o arquivo de saída usando o nome de arquivo (-O) proposto no servidor remoto (também inseguro). Na minha opinião, o servidor deve ser melhor configurado para criar aliases de redirecionamento local, sempre que necessário, para evitar a necessidade de passar essa parte não conforme da URL. Mas o redirecionamento é feito usando apenas um redirecionamento HTTP (erro HTTP 30x), que causa problemas de ondulação que não seguem (por padrão) esse redirecionamento (não seguro), e a opção (-k) desativa essa verificação de segurança. Portanto, em vez de usar redirecionamentos HTTP (movidos permanentemente), adicione algum link interno no sistema de arquivos do servidor. Se isso for necessário porque a URL é realmente hospedada em outro servidor físico sem acesso direto entre seus sistemas de arquivos, você deve usar outro nome DNS para esse host, para que os clientes consultem o correto diretamente, sem redirecionar. Em seguida, corrija suas páginas da web (você pode usar os logs do servidor da web para ver onde os redirecionamentos HTTP 30x são retornados e quais páginas da web precisam ser verificadas e atualizadas). Forçar os clientes a usar protocolos não seguros / não verificados não é uma boa opção.

Portanto, esse é definitivamente um problema de configuração muito ruim no servidor da Web: tente entrar em contato com o administrador para corrigir isso.

verdy_p
fonte
0

bem, você pode usar o Axel também. axel é um acelerador de download de linha de comando leve. suporta HTTP, HTTPS, FTPe FTPSprotocolos. é uma alternativa agradável e mais rápida.

instale axelusando:

apt-get install axel

faça o download do seu arquivo:

axel http://github.com/ziyaddin/xampp/archive/master.zip
Mahesh
fonte
0

Use a opção -Lpara seguir redirecionamentos; também é possível --outputatribuir um caminho e um nome ao arquivo zip. Por exemplo:

sudo curl -L https://github.com/CISOfy/lynis/archive/master.zip --output /etc/lynis.zip

Nota: Use sudo se você não tiver permissões para gravar na pasta de destino.

Luigi Lopez
fonte