Linux提供了不同的工具来通过不同类型的协议(如HTTP、FTP、HTTPS等)下载文件 是通过命令行界面下载文件的最常用工具。Wget由Linux、BSD、Windows和MacOSX支持。Wget有一个丰富的特性集,其中一些可以列出
- 继续下载
- 多文件下载单个命令
- 代理支持
- 无人参与下载
Curl是wget的替代品。要阅读curl教程,请单击此链接
wget命令帮助
wget的帮助信息如下所示。
$ wget -h

简单的下载
wget命令最常见的用法是除了下载URL之外不提供任何选项或参数。我们将使用wget只提供下载网址。
$ wget http://ftp.gnu.org/gnu/wget/wget-1.19.tar.gz

设置不同的文件名
下载时,下载文件的名称与下载URL中提供的名称相同。在上一个示例中,文件名为 wget-1.19.tar.gz
因为URL提供了这个名称。我们可以将保存的文件名更改为与URL不同的名称。我们将使用 -O
带有name参数的选项,将名称设置为 wget.tar.gz
因此将从文件名中删除版本部分。
$ wget -O wget.tar.gz http://ftp.gnu.org/gnu/wget/wget-1.19.tar.gz

下载多个文件
wget还有一个有用的特性,它使我们能够下载多个文件。我们将在一个命令中提供多个url。这些文件将被下载并在URL中命名为。不需要明确的选项规范。我们只是通过用空格分隔URL来提供一行。URL的数量没有限制
$ wget http://ftp.gnu.org/gnu/wget/wget-1.19.tar.gz http://ftp.gnu.org/gnu/wget/wget-1.18.tar.gz

从文件读取下载URL
在前面的示例中,我们通过从命令like中指定url下载了多个文件。如果有100个URL要下载,这可能会变得很难管理。另一种情况可能是url在外部以纯文本格式逐行提供。将这些url提供给命令行是一项困难且容易出错的工作。希望wget有这样一个特性:只需指定文件名,就可以逐行读取文件中的url。我们将在一个名为 downloads.txt
一行一行地 -i
选项。
相关文章: 如何安装Tar.Gz或Tar.Bz2应用程序源代码?
下载.txt文件内容
http://ftp.gnu.org/gnu/wget/wget-1.19.tar.gz http://ftp.gnu.org/gnu/wget/wget-1.18.tar.gz
我们将下载。它有非常清晰的介绍。
$ wget -i downloads.txt

恢复未完成的下载
wget命令的另一个重要特性是从它离开的地方恢复下载。尤其是在大文件中,下载可能会在%%98完成后中断,这是一场噩梦。这个 -c
提供了一个选项来恢复下载,而不必从头开始。
$ wget -c http://ftp.gnu.org/gnu/wget/wget-1.19.tar.gz

从截图中我们可以看到,文件的下载部分显示为 +
加号 在下载栏中。此外,还有关于重命名长度和已下载的长度以及行开始的信息 Lenght:...
也有类似的信息 Partial Content
不覆盖现有文件
默认情况下,wget不覆盖文件。如果它看到与下载的文件存在相同的文件名,它会附加 .1
下载文件的结尾。这个 .1
如果全部就绪,则递增。
在后台下载文件
Wget作为一个交互式的下载过程开始。在下载过程中,wget进程仍然是前台进程。但在某些情况下,我们可能需要将wget发送到后台。与 -b
wget命令将发送到后台的选项。
$ wget -b http://ftp.gnu.org/gnu/wget/wget-1.19.tar.gz

限制下载速度
默认情况下,wget的下载速度是不受限制的。因此它将根据远程站点的上传速度来消耗带宽。这种行为可能不适合某些情况。我们可能希望不使用整个带宽,而将带宽保留给其他关键应用程序。我们可以用 --limit-rate
具有带宽值的选项。在本例中,我们将带宽设置为 50KB/s
.
$ wget --limit-rate=50K http://ftp.gnu.org/gnu/wget/wget-1.19.tar.gz

正如我们在左下角看到的,带宽被限制在50KB/s
相关文章: 什么是HTTPS?
指定用于登录的FTP用户名和密码
安全是当今的一个重要问题。所以FTP服务器不是很安全,但是它们试图实现一些安全步骤,比如用户名和密码。wget可以使用FTP用户名和密码的FTP身份验证。我们将使用 --ftp-user
用于指定用户名和 --ftp-password
指定FTP密码。
$ wget --ftp-user=anonymous --ftp-password=mypass ftp.gnu.org/gnu/wget/wget-1.19.tar.gz

指定HTTP用户名和密码
与上一个示例一样,我们可以指定HTTP用户名和密码。我们将使用 --http-user
指定HTTP用户名和 --http-password
HTTP密码。
$ wget --http-user=anonymous --http-password=mypass https://ftp.gnu.org/gnu/wget/wget-1.19.tar.gz

更改用户代理信息
连接网页时,HTTP协议提供有关用户浏览器的信息。使用wget下载文件时也会提供相同的信息。有些网站可以拒绝访问非标准浏览器。Wget默认提供不同于标准浏览器的用户代理。此浏览器信息可以随 --user-agent
具有浏览器名称的参数。在本例中,我们将提供如下浏览器信息 Mozilla Firefox
.
$ wget --user-agent="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092416 Firefox/39" https://ftp.gnu.org/gnu/wget/wget-1.19.tar.gz

测试下载URL
wget的另一个有用特性是在下载url之前测试它们。这将给出一些关于URL和文件状态的提示。我们将使用 --spider
用于检查远程文件是否存在并可下载的选项。
$ wget --spider https://ftp.gnu.org/gnu/wget/wget-1.19.tar.gz

从截图中我们可以看到,有一条信息 Remote file exists.
在最后一行。我们也可以不下载就获得文件的大小。
设置重试次数
在有问题的网络或下载服务器中,可能存在一些下载问题。最常见的问题是短时间内无法访问远程文件。我们可以设置在指定时间内尝试下载的重试次数。 --tries
可以使用具有重试次数的选项。
$ wget --tries=10 https://ftp.gnu.org/gnu/wget/wget-1.19.tar.gz
下载整个网站或蜘蛛网站
有不同的工具下载整个网站只是提供主页网址。wget也有这个能力。此命令将爬行并下载有关此URL和子页的所有页面。这将使网站离线访问。我们将使用 --mirror
下载整个网站并提供下载位置 -P
参数。这里我们要下载 www.poftut.com
及其子页
$ wget --mirror https://www.poftut.com -P poftut.com

下载特定文件类型
当下载多个文件或镜像一个站点时,我们可能只想下载一个特定的文件或文件扩展名。这可以用 -A
扩展名或文件名的某个部分。在这个例子中,我们只想下载 .txt
文件夹。
$ wget -A '.txt' --mirror https://www.poftut.com

做 不下载特定的文件类型
下载多个URL时 或者镜像一个网站会有很多文件我们不想下载或太大,无法下载。我们将使用–拒绝 选项提供扩展名或文件名。
$ wget --reject '.txt' --mirror https://www.poftut.com
记录到文件
默认情况下,wget创建的日志被打印到标准输出,这通常是我们使用的命令行界面。但是使用远程或作为批处理或后台进程,我们不能直接获取日志。因此,将日志写入文件是最好的解决方案。我们将使用 -o
具有日志文件名的选项。
$ wget -o wget.log http://ftp.gnu.org/gnu/wget/wget-1.19.tar.gz

设置下载大小限制
另一个设置总下载文件大小限制的好方法是 -Q
. 我们将下载大小设置为 2 MB
在这个例子中。此设置对单个文件下载无效。它将影响站点的递归或镜像。
$ wget -Q5m https://www.poftut.com
显示版本信息
有关wget命令的版本信息可以通过 --version
选项。
$ wget --version
![图片[16]-Wget命令教程-yiteyi-C++库](https://www.yiteyi.com/wp-content/uploads/2017/03/poftut_img_58be70527a3d8.png)