Wget 命令使用简介

2021-04-29 linux network command

常用的 wget 相关命令整理。

简介

一个下载文件的工具,支持断点下载、FTP 和 HTTP 下载、代理服务器,如下简单介绍其使用方法。

常用命令

下载单个文件

以下的例子是从网络下载一个文件并保存在当前目录

$ wget http://foobar.example.com/your-file-name.tar.bz2

在下载的过程中会显示进度条,包含下载完成百分比,已经下载的字节,当前下载速度,剩余下载时间。

重命名保存文件

默认会以最后一个符合 "/" 的后面的字符来命名文件,对于动态链接的下载通常文件名会不正确,如下示例会下载一个文件并以名称 download.php?id=1 保存。

$ wget https://www.example.com/download?id=1

即使下载后的文件是 zip 格式,仍然以 download.php?id=1 命令,此时可以通过 -O 来指定一个下载文件名。

$ wget -O example.zip https://www.example.com/download.php?id=1
限速下载

当执行 wget 时,默认会占用全部可能的宽带下载,但是当你准备下载一个大文件,而你还需要下载其它文件时就有必要限速了。

$ wget --limit-rate=300k http://foobar.example.com/your-file-name.tar.bz2
断点续传

通过 -c 参数重新启动下载中断的文件。

$ wget -c http://foobar.example.com/your-file-name.tar.bz2

对于下载大文件时突然由于网络等原因中断时非常有用。

后台下载

下载非常大的文件时,可以使用参数 -b 进行后台下载。

$ wget -c http://foobar.example.com/your-file-name.tar.bz2
Continuing in background, pid 9817.
Output will be written to `wget-log'.

可以使用 tail -f wget-log 命令查看进度。

伪装代理下载

有些网站能根据代理是不是浏览器而拒绝下载,此时可以通过 --user-agent 参数伪装代理。

$ wget --user-agent="Mozilla/5.0 (Windows NT 6.1; en-US)" http://foobar.example.com/file.tar.bz2
测试下载链接

通常在 A) 定时下载之前进行检查;B) 间隔检测网站是否可用;C) 检查网站页面的死链接,可以通过 --spider 检查链接是否可用。

如果下载链接正常,将会显示:

$ wget --spider URL
Spider mode enabled. Check if remote file exists.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Remote file exists and could contain further links,
but recursion is disabled -- not retrieving.

而对于错误链接,将会显示如下错误:

$ wget --spider URL
Spider mode enabled. Check if remote file exists.
HTTP request sent, awaiting response... 404 Not Found
Remote file does not exist -- broken link!!!
增加重试次数

如果网络有问题或下载一个大文件也有可能失败,默认重试 20 次连接下载文件,如果需要,可以使用 --tries 增加重试次数。

$ wget --tries=40 URL
下载多个文件

通过 -i 参数指定下载文件,下载多个文件。

$ cat filelist.txt
url1
url2
url3

$ wget -i filelist.txt
镜像网站

使用 --mirror 下载整个网站,下面的例子是下载整个网站到本地。

$ wget --mirror -p --convert-links -P ./LOCAL URL
--miror  镜像下载
-p       下载所有为了html页面显示正常的文件
--convert-links  下载后,转换成本地的链接
-P ./LOCAL       保存所有文件和目录到本地指定目录
过滤指定格式

你想下载一个网站,但你不希望下载图片,你可以使用以下命令。

$ wget --reject=gif url