Como baixar um arquivo de um site via terminal?


305

Suponha que tenhamos um URL completo do arquivo desejado, por exemplo

http://domain.com/directory/4?action=AttachFile&do=view&target=file.tgz

Eu gostaria de ir sem instalar um novo software. É possível?

Comando

 cp  'http://example.com/directory/4?action=AttachFile&do=get&target=file.tgz' hooray

não funciona;)


6
wgeté seu amigo aqui :)
cauon 27/10/12

10
wgettalvez seja a maneira mais simples, mas você também pode usar curl. Leia isto
dearN,

16
Use wget -O hooray "http://domain.com/directory/4?action=AttachFile&do=get&target=file.tgz". Você pode adicionar a -copção para retomar o download se a conexão for perdida durante o download do arquivo.
Sergey

"hooray" me fez
rir muito

Respostas:


397

Terminal aberto e tipo

wget "http://domain.com/directory/4?action=AttachFile&do=view&target=file.tgz" 

para baixar o arquivo para o diretório atual.

wget  -P /home/omio/Desktop/ "http://thecanadiantestbox.x10.mx/CC.zip"

fará o download do arquivo para /home/omio/Desktop

wget  -O /home/omio/Desktop/NewFileName "http://thecanadiantestbox.x10.mx/CC.zip"

fará o download do arquivo /home/omio/Desktope fornecerá seu NewFileNamenome.


1
Bata-me ao soco. Dang. Mas sim, é wget [whatever web address]. Se você quiser escolher o local, digite cd [local location on your computer.] EXAMPLE: cd /home/omio/Desktop/ | wget http://thecanadiantestbox.x10.mx/CC.zip
Omio 27/10

4
@ Omio Não há necessidade de executar cd. Você pode apenas especificar o arquivo de saída através da -Oopção Por exemplo:wget -O /home/omio/Desktop/file.tgz "http://domain.com/directory/4?action=AttachFile&do=view&target=file.tgz"
Sergey

1
Seus exemplos não irão funcionar. Você DEVE usar aspas quando o URL contiver e comercial.
Sergey

@ Emery Obrigado pelo esclarecimento. Ainda não precisei usar o wget, mas teria que fazê-lo no futuro.
Omio 27/10

? e & são interpretados pelo seu shell. Você precisa citar ou escapar. Geralmente, você tem um atalho para colar uma versão citada ou escapada da string na área de transferência no seu terminal. Tenha muito cuidado ao colar objetos dentro de um terminal.
Alecail #

27

você pode fazer isso usando curl.

curl -O http://domain.com/directory/4?action=AttachFile&do=view&target=file.tgz

O -O salva o arquivo com o mesmo nome da URL, em vez de descarregar a saída para stdout

Para maiores informações


Nunca me lembro se é zero ou 0
Alexander Mills

-O é a letra alfabética e deve ser maiúscula; caso contrário, será gerado um log
Kareem Elsayed

20

Eu uso axele wgetpara baixar do terminal, axel é acelerador de download

sintaxe

axel

Instale através do centro de software

axel www.example.com/example.zip

wget

wget -c www.example.com/example.zip

para mais detalhes digite man axel, man wgetno terminal


6
como é axeldiferente wget?
precisa

3
@ heinrich5991 O wget é mais avançado que o axel!
Pranit Bauva

9

Apenas para adicionar mais sabor a esta pergunta, eu também recomendo que você dê uma olhada nisso:

history -d $((HISTCMD-1)) && echo '[PASSWORD]' | sudo -S shutdown now

Você pode usar isso para desligar o computador após o wgetcomando com um arquivo ;talvez ou em um bashscript.

Isso significa que você não precisa ficar acordado à noite e monitorar até que seu download seja executado com êxito.

Leia esta resposta também


5

a falta de menção ao Aria2 é apenas um desserviço, portanto, com isso dito, confira o Aria2. https://aria2.github.io/

Instale-o simplesmente digitando no terminal:

sudo apt install aria2

Em seguida, basta digitar isto para baixar o arquivo:

aria2c http://example.com/directory/4?action=AttachFile&do=get&target=file.tgz

Você pode encontrar mais ajuda com aria2pela sua manpágina.


2

Eu fiz essas etapas do Oh-my-zsh,

brew install wget
wget https://github.com/sencha-extjs-examples/QuickStart/archive/master.zip
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.