如何从Linux命令行下载文件

在本指南中,您将学习如何使用Linux命令行下载文件。

你为什么想做这个? 为什么不在图形环境中使用Web浏览器?

有时候没有图形环境。 例如,如果您使用SSH连接到您的Raspberry PI,那么您主要是使用命令行。

使用命令行的另一个原因是您可以创建一个包含要下载的文件列表的脚本。 然后,您可以执行脚本并让它在后台运行

将为此任务突出显示的工具称为wget。

安装wget

许多Linux发行版都默认安装了wget。

如果尚未安装,请尝试以下命令之一:

如何从命令行下载文件

为了下载文件,您至少需要知道您希望下载的文件的URL。

例如,假设你想使用命令行下载最新版本的Ubuntu。 你可以访问Ubuntu网站。 通过浏览网站,您可以访问此页面,该链接提供了一个链接,下载即时链接。 您可以右键单击此链接以获取您希望下载的Ubuntu ISO的URL。

使用以下语法使用wget下载文件:

wget http://releases.ubuntu.com/14.04.3/ubuntu-14.04.3-desktop-amd64.iso?_ga=1.79650708.1078907269.1453803890

这一切都很好,但你需要知道你需要下载的文件的完整路径。

可以使用以下命令下载整个站点:

wget -r http://www.ubuntu.com

上述命令从Ubuntu网站复制整个站点,包括所有文件夹。 这当然不可取,因为它会下载大量不需要的文件。 这就像使用木槌来炸壳。

但是,您可以使用以下命令从Ubuntu网站下载带ISO扩展名的所有文件:

wget -r -A“iso”http://www.ubuntu.com

这对于从网站下载所需的文件来说仍然是一个非常好的方法。 知道您想下载的文件的URL或URL会好得多。

您可以使用-i开关指定要下载的文件列表。 您可以使用文本编辑器创建一个URL列表,如下所示:

nano filestodownload.txt

在文件中输入一个URL列表,每行1个:

http://eskipaper.com/gaming-wallpapers-7.html#gal_post_67516_gaming-wallpapers-1.jpg
http://eskipaper.com/gaming-wallpapers-7.html#gal_post_67516_gaming-wallpapers-2.jpg
http://eskipaper.com/gaming-wallpapers-7.html#gal_post_67516_gaming-wallpapers-3.jpg

使用CTRL和O保存文件,然后使用CTRL和X退出nano。

您现在可以使用wget使用以下命令下载所有文件:

wget -i filestodownload.txt

从互联网下载文件的麻烦是有时文件或URL不可用。 连接的超时时间可能需要一段时间,如果您尝试下载大量文件,则会等到默认的超时时间会产生反效果。

您可以使用以下语法指定您自己的超时值:

wget -T 5 -i filestodownload.txt

如果你有一个下载限制作为你的宽带交易的一部分,那么你可能希望限制wget可以检索的数据量。

使用以下语法来应用下载限制:

wget --quota = 100m -i filestodownload.txt

一旦达到100兆字节,上述命令将停止下载文件。 您还可以以字节为单位指定配额(使用b而不是m)或千字节(使用k而不是m)。

您可能没有下载限制,但您的网络连接可能较慢。 如果你想在不破坏每个人的上网时间的情况下下载文件,那么你可以指定一个设置最大下载速度的限制。

例如:

wget --limit-rate = 20k -i filestodownload.txt

上述命令将下载速率限制为每秒20千字节。 您可以指定以字节,千字节或兆字节为单位的金额。

如果您想确保任何现有文件都不会被覆盖,您可以运行以下命令:

wget -nc -i filestodownload.txt

如果书签列表中的文件已经存在于下载位置,则不会被覆盖。

我们知道的互联网并不总是一致的,因此,下载可以部分完成,然后您的互联网连接就会中断。

如果你能继续离开你的地方,这不是件好事吗? 您可以使用以下语法继续下载:

wget -c

概要

wget命令有几十个可以应用的开关。 使用命令man wget从终端窗口中获​​取它们的完整列表。