Normalmente, alguém baixaria um arquivo com uma URL terminando 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, me deparei com um site que suspeito que usa ASP.Net/IIS.
Um link para uma ISO está neste formato(Removi o conteúdo do link no 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 baixa apenas uma página da web, não este ISO.
Alguma sugestão?
Responder1
Usar
wget "http://some.ip.in.here/website.com/IMAGENAME.ISO?md5=hUhpyFjk7zEskw06ZhrWAQ&expires=1454811899"
Explicação: há o caractere "&" no URL. No Linux e em sistemas similares, isso o torna um processo em segundo plano.
A solução é colocar o URL entre aspas duplas ( "
) para que seja tratado como um argumento.
Responder2
Se você está apenas tentando obter um nome de arquivo razoável para um URL complexo, você pode usar odocumento de saídaopção.
-O file
--output-document=file
Qualquer um desses formulários funcionará.
Conforme observado anteriormente, certifique-se de que nenhum dos caracteres especiais na URL esteja sendo interpretado pelo analisador de comando.
Responder3
Existem duas maneiras de fazer isso usandoOndulação.
Neste primeiro método você usaria o -O
sinalizador para gravar o arquivo com base no nome remoto da URL; neste caso, provavelmente gravaria o arquivo no sistema como IMAGENAME.ISO?md5=hUhpyFjk7zEskw06ZhrWAQ&expires=1454811899
; observe como o valor da URL está contido entre aspas duplas &
e ?
pode ser mal interpretado como comandos Bash:
curl -O -L "http://some.ip.in.here/website.com/IMAGENAME.ISO?md5=hUhpyFjk7zEskw06ZhrWAQ&expires=1454811899";
Embora esse método “funcione” tecnicamente, o nome do arquivo é, na melhor das hipóteses, confuso. Portanto, neste outro método, você usaria o redirecionamento de saída - >
seguido por um nome de arquivo após o URL - para enviar o conteúdo do arquivo para 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 o uso mais comum. Observe também o -L
sinalizador sendo usado em ambos os comandos; esses comandos dizem ao Curl para seguir quaisquer links de redirecionamento que um URL de download de arquivo possa ter, já que muitas vezes os arquivos nos serviços de download são redirecionados algumas vezes antes de chegar ao arquivo de carga útil de destino.