如何在 Linux 中从 URL 下载文件

Cyb*_*beX 8 linux download wget

通常人们会下载一个 URL 以文件扩展名结尾的文件。

要下载 Ubuntu ISO,很简单

wget http://releases.ubuntu.com/14.04.3/ubuntu-14.04.3-desktop-amd64.iso
Run Code Online (Sandbox Code Playgroud)

但是,我遇到了一个我怀疑使用 ASP.Net / IIS 的站点。

ISO 的链接采用这种形式(我删除了链接内容以防万一……政策)

http://some.ip.in.here/website.com/IMAGENAME.ISO?md5=hUhpyFjk7zEskw06ZhrWAQ&expires=1454811899
Run Code Online (Sandbox Code Playgroud)

我不知道如何下载它,因为它有 MD5 和到期时间作为参数,所以 wget 只下载一个网页,而不是这个 ISO。

有什么建议?

小智 9

wget "http://some.ip.in.here/website.com/IMAGENAME.ISO?md5=hUhpyFjk7zEskw06ZhrWAQ&expires=1454811899"
Run Code Online (Sandbox Code Playgroud)

说明:网址中有“&”字符。在 linux 和类似系统上,这使其成为后台进程。解决方法是将 url 括在双引号 (") 中,以便将其视为一个参数。


小智 5

如果您只是想通过复杂的 URL 获取合理的文件名,则可以使用输出文档选项。

-O file
--output-document=file
Run Code Online (Sandbox Code Playgroud)

这两种形式中的任何一种都可以。

如前所述,请确保命令解析器不会解释 URL 中的任何特殊字符。