Como baixar um arquivo de URL no Linux

0

Normalmente, um faz o download de um arquivo com um URL que termina na extensão do arquivo.

Para baixar o Ubuntu ISO, seria simples

wget http://releases.ubuntu.com/14.04.3/ubuntu-14.04.3-desktop-amd64.iso

No entanto, deparei com um site que suspeito usa ASP.Net / IIS.

Um link para um ISO está nesta forma (removi o conteúdo do link em caso de ... políticas) :

http://some.ip.in.here/website.com/IMAGENAME.ISO?md5=hUhpyFjk7zEskw06ZhrWAQ&expires=1454811899

Não tenho certeza de como fazer o download, pois ele tem o MD5 e o tempo de expiração como parâmetros e, portanto, o wget faz o download apenas de uma página da Web, não desta ISO.

Alguma sugestão?

    
por Cybex 29.01.2016 / 20:06

3 respostas

3

Use

wget "http://some.ip.in.here/website.com/IMAGENAME.ISO?md5=hUhpyFjk7zEskw06ZhrWAQ&expires=1454811899"

Explicação: Existe "&" personagem no url. Em sistemas Linux e similares, isso faz com que seja um processo em segundo plano. Solucione-o para incluir url em double quoutes (") para que seja tratado como um argumento.

    
por 30.01.2016 / 01:11
3

Se você está apenas tentando obter um nome de arquivo razoável na URL complexa, você pode usar a opção output-document .

-O file
--output-document=file

Qualquer um desses formulários funcionará.

Como observado anteriormente, certifique-se de que nenhum dos caracteres especiais na URL esteja sendo interpretado pelo analisador de comandos.

    
por 30.01.2016 / 00:50
0

Existem duas maneiras de fazer isso usando o Curl .

Nesse primeiro método, você utilizaria o sinal -O para gravar o arquivo com base no nome remoto da URL; nesse caso, seria mais provável gravar o arquivo no sistema como IMAGENAME.ISO?md5=hUhpyFjk7zEskw06ZhrWAQ&expires=1454811899 ; observe como o valor da URL está contido por aspas duplas, pois & e ? podem ser mal interpretados como comandos Bash:

curl -O -L "http://some.ip.in.here/website.com/IMAGENAME.ISO?md5=hUhpyFjk7zEskw06ZhrWAQ&expires=1454811899";

Embora esse método tecnicamente "funcione", mas o nome do arquivo é confuso na melhor das hipóteses. Portanto, nesse outro método, você usaria o redirecionamento de saída - com > seguido por um nome de arquivo após a URL - para produzir o conteúdo do arquivo em um arquivo chamado IMAGENAME.ISO :

curl -L "http://some.ip.in.here/website.com/IMAGENAME.ISO?md5=hUhpyFjk7zEskw06ZhrWAQ&expires=1454811899" > "IMAGENAME.ISO";

Então, se você me perguntar, o segundo método funciona melhor para a maioria dos usos médios. Observe também que o sinalizador -L está sendo usado em ambos os comandos; Esse comando diz ao Curl para seguir quaisquer links de redirecionamento que uma URL de download de arquivo possa ter, já que muitas vezes os arquivos em serviços de download redirecionam algumas vezes antes de chegar ao arquivo de carga útil de destino.

    
por 30.01.2016 / 01:31