Wget

此页由Linux Wiki用户Chenxing于2012年12月18日 (星期二) 08:10的最后更改。 在lzh的工作基础上。

出自Linux Wiki

提示:此文已超过 12 年(4387 天)未更新,如发现内容过时或有误,欢迎改进:)

简介

Wget是在*inx系统中常用的命令行下载工具。Linux中的版本是GNU Wget,它是GNU计划的一部分,名字是“World Wide Web”和“Get”的缩写,暗示了软件的主要功能。[1]目前它支持通过HTTP、HTTPS和FTP这三个最常见的TCP/IP协议协议下载文件。

由于Wget是非交互式的命令行工具,一旦开始运行,就无需用户的操作,所以它非常适合于在脚本中使用,也可用于定时执行的程序中。

Wget可以跟踪HTML页面上的链接依次下载来创建远程服务器的本地版本,完全重建原始站点的目录结构。这又常被称作"递归下载"。在递归下载的时候,Wget遵循Robot Exclusion标准(/robots.txt),Wget还会检查文件的时间戳,避免重复下载。Wget可以在下载的同时,将链接转换成指向本地文件,以方便离线浏览。[2]

Wget在带宽很窄的情况下和不稳定网络中有很强的适应性。如果是由于网络的原因下载失败,Wget会不断的尝试,直到整个文件下载完毕。如果是服务器打断下载过程,它会再次连到服务器上从停止的地方继续下载。这对从那些限定了链接时间的服务器上下载大文件非常有用。

Wget还具有如下特点[3]

  • 支持多种操作系统,包括类unix操作系统和Windows系统
  • 支持代理服务器、HTTP cookies等
  • 支持HTTP链接保持,加快从一个服务器连续下载多个文件的速度
  • 使用GPL协议发布,且可免费下载

当然,Wget的功能也是有限的,主要的问题如支持的协议还不够多。流行的流媒体协议mms和rtsp也没有得到支持,还有广泛使用各种的P2P协议也没有涉及。

Hint.gif
提示:
录制mms或rtsp协议,可以参考文章录制网上直播的广播电视下载mms协议视频

使用方法

Wget最基本的用法很简洁:[1]

# 下载某个网站的首页:
 wget http://www.example.com/
 
 # 下载Wget的源代码:
 wget ftp://ftp.gnu.org/pub/gnu/wget/wget-latest.tar.gz
 
 # 下载example.com首页的所有内容
 wget -r -l 0 http://www.example.com/
 
 # 续传未下载完的大文件
 wget -c http://example.com/really-big-file.iso

Wget还有一些使用技巧:[4]

wget -r -np -nd http://example.com/packages/

上面的命令可以下载 http://example.com/packages 目录下的所有文件。其中-np表明不遍历父目录,-nd 表示不在本机重新创建目录结构。

--accept也很有用:

wget -r -np -nd --accept=iso http://example.com/centos-5/i386/

上面的命令表示只下载后缀为iso的文件。也可以使用通配符做为参数值,这时Wget将把其当做一个模式串,下载所有文件名与之匹配的串。

--reject--accept恰好相反,表明不下载哪些文件。

下载一个URL列表文件中的所有文件

wget -i filename.txt
Hint.gif
提示:
这里的列表文件也可以是一个HTML文档,Wget会下载其中的链接,如果是相对链接,基地址可以用 --base参数说明。

为一个网站做镜像,把链接转成本地链接:

wget -m -k (-H) http://www.example.com/

-H参数会允许Wget跨站点下载文件,请按需使用。

参考资料

  1. 1.0 1.1 http://en.wikipedia.org/wiki/Wget
  2. http://baike.baidu.com/view/1312507.htm
  3. http://www.gnu.org/software/wget/
  4. http://tipotheday.com/2007/10/11/wget-some-quick-tips/

本文对您有帮助?分享给更多朋友!

反馈与讨论

发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。
个人工具
简体繁体转换