常用的 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