Wget
出自Linux Wiki
简介
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协议也没有涉及。
使用方法
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
为一个网站做镜像,把链接转成本地链接:
wget -m -k (-H) http://www.example.com/
-H参数会允许Wget跨站点下载文件,请按需使用。
参考资料
- ↑ 1.0 1.1 http://en.wikipedia.org/wiki/Wget
- ↑ http://baike.baidu.com/view/1312507.htm
- ↑ http://www.gnu.org/software/wget/
- ↑ http://tipotheday.com/2007/10/11/wget-some-quick-tips/