wget 是一个命令行的下载工具。对于我们这些 Linux 用户来说,几乎每天都在使用它。下面为大家介绍几个有用的 wget 小技巧,可以让你更加高效而灵活的使用 wget。

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

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

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

与上一条命令相似,但多加了一个 –accept=iso 选项,这指示 wget 仅下载 i386 目录中所有扩展名为 iso 的文件。你也可以指定多个扩展名,只需用逗号分隔即可。

* $ wget -i filename.txt

此命令常用于批量下载的情形,把所有需要下载文件的地址放到 filename.txt 中,然后 wget 就会自动为你下载所有文件了。

* $ wget -c http://example.com/really-big-file.iso

这里所指定的 -c 选项的作用为断点续传。

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

该命令可用来镜像一个网站,wget 将对链接进行转换。如果网站中的图像是放在另外的站点,那么可以使用 -H 选项。

Wget支持 HTTP, HTTPS, FTP和HTTP代理。
特性:
1.非交互式,意味着wget可以在一直后台运行,用户甚至无需登录。
2.wget可以追踪HTML,XHTML,CSS中的链接,从而方便的创建站点的本地镜像。
3.支持通配符,支持时间戳
4.健壮的设计使其可以在缓慢或不稳定的网络中使用。
5.支持使用代理。
6.支持IPV6(需编译时加入支持)
7.内建特性提供微调机制让你下载到你想要的连接。
8.几乎所有这些特性都是可配置的,通过命令行参数或配置文件
9.wget是自由,每个人都可以在GPL框架下使用,修改和再发布

调用:wget [OPTION]… [URL]…
1.URL格式

http://host[:port]/directory/file

ftp://host[:port]/directory/file
或者在URL中使用 用户名和密码:
ftp://user:password@host/path

http://user:password@host/path

(这种做法不安全,其它用户可以用ps命令看到用户名 密码!)
对于ftp,wget支持类型设置:type=a (ascii 模式,‘i’ 二进制模式)
ftp://host/directory/file;type=a
2.基本选项
-V(–version): 打印版本
-h(–help):      打印帮助
-b(–backgroud): 启动后在后台运行,默认output重定向到wget-log,可以通过-o 指定。
-e(–execute): 运行命令,如同在.wgetrc中的命令一样,但在.wgetrc所有命令之后运行
3.日志和输入文件选项
-o LOGFILE(–output-file=LOGFILE): 记录所有消息至LOGFILE中
-a LOGFILE(–append-output=LOGFILE):添加日志至LOGFILE中
-d(–debug):打开调试模式(需编译时添加debug支持)
-q(–quiet):关闭输出
-v(–verbose):冗余输出(默认)
-nv(–no-verbose): 关闭冗余输出
-i FILE(–input-file=FILE):从本地或外部文件中读URLS,本地文件使用–force-html强制作为html文件处理,外部文件自动当作html
-F(–force-html): 当从文件输入时,将文件当作html处理
-B URL(–base=URL): 解析相对链接时,使用URL作为参考点(可与-i配合使用)
3下载选项:
–bind-address=ADDRESS: 绑定地址
-t NUMBER(–tries=NUMBER): 设置重试次数,0或inf为无限次,默认20次,”connection refused” or “not found”除外。
-O FILE(–output-document=FILE): 所有下载文件均写入FILE中。
-nc(–no-clobber):加入此选项则当下载同一文件时,wget拒绝下载新版
-c(–continue): 当前目录下有不完整的文件时,断点续传之。
–progress=TYPE:设置进度显示格式,有dot和bar两种。
-N(–timestamping): 打开时间戳功能。
-S(–server-response): 打印HTTP服务器发送的头信息或FTP服务器的响应。
–spider: 只检查文件是否存在,不下载(类似web spider)。
-T seconds(–timeout=seconds): 设置超时时间,相当于同时设置`–dns-timeout’, `–connect-timeout’, 和`–read-timeout’
–dns-timeout=SECONDS:设置dns解析超时时间
–connect-timeout=SECONDS:设置连接超时时间
–read-timeout=SECONDS:设置空闲超时时间
–limit-rate=AMOUNT:下载速度限制
-w SECONDS(–wait=SECONDS):设置下载时间间距
–waitretry=SECONDS:设置错误重试时间间隔
–random-wait:设置等待时间为0.5至1.5*WAIT seconds间的随机值
–no-proxy:不使用代理
-Q QUOTA(–quota=QUOTA):设置下载配额。
–no-dns-cache:不使用dns缓存,即每次连接重新要求解析
–restrict-file-names=MODES:设置本地保存文件名的格式。
-4(–inet4-only):只用ipv4
-6(–inet6-only):只用ipv6
–prefer-family=none/IPv4/IPv6:设置首选类型。
–retry-connrefused:设置当connection refused时重试
–user=USER –password=PASSWORD指定用户名,密码。(不安全!)
–ask-password:每个连接弹出密码输入框。
–no-iri:关闭internationalized URI(IRI)支持,用–iri打开(默认)
–local-encoding=ENCODING:设置本地编码,供wget由本地URLS参数转至UTF-8时使用
–remote-encoding=ENCODING:设置远程编码,供wget转换远端编码至UTF-8时使用。
4.目录选项
-nd(–no-directories):不创建分层目录(所有文件都下至当前目录)
-x(–force-directories):与-nd相反,强制创建下载目录
-nH(–no-host-directories):不创建以主机为前缀的目录。
–protocol-directories:使用协议名称组成本地目录名
–cut-dirs=NUMBER:减去NUMBER个目录作为目录名
-P PREFIX(–directory-prefix=PREFIX): 文件下载至PREFIX
5,HTTP选项
–default-page=NAME:使用NAME作为默认主页名
-E(–adjust-extension):本地存储文件时加.html后缀
–http-user=USER –http-password=PASSWORD:
–no-http-keep-alive:关闭keep alive功能
–no-cache:关闭服务器端的缓存功能
–no-cookies:不使用cookies
–load-cookies FILE:从FILE加载饼干
–save-cookies FILE:保存饼干至FILE
–keep-session-cookies:保存会话饼干,与上个选项一起用
–ignore-length:忽略HTTP头中的Content-Length内容
–header=HEADER-LINE:构造HTTP头
–max-redirect=NUMBER:指定最大重定向数目
–proxy-user=USER –proxy-password=PASSWORD
–referer=URL:在HTTP头中包含Referer: URL
–save-headers:保存HTTP服务器发送的报头
-U AGENT-STRING(–user-agent=AGENT-STRING):设置用户标示
–post-data=STRING –post-file=FILE:使用POST方法发送STRING或FILE中的内容(key1=value1&key2=value2格式)
–content-disposition:试验性的支持Content-Disposition头
–auth-no-challenge:让wget发送基本HTTP认证信息
6.HTTPS(SSL/TLS)选项
–secure-protocol=PROTOCOL选择安全协议类型(auto,SSLv2,SSLv3,TLSv1)
–no-check-certificate:不检查证书
–certificate=FILE:指定客户端证书
–certificate-type=TYPE:指定客户端证书类型
–private-key=FILE:从FILE读取私钥
–private-key-type=TYPE:指定私钥类型
–ca-certificate=FILE:指定CA文件
–ca-directory=DIRECTORY:指定CA文件所在目录
–random-file=FILE:在没有/dev/random文件的系统上,使用FILE作为随机数的源
–egd-file=FILE:使用FILE作为EGD套接字
7.FTP选项
–ftp-user=USER –ftp-password=PASSWORD
–no-remove-listing:不移除临时文件.listing
–no-glob:关闭FTP多文件获取功能(使用通配符)
–no-passive-ftp:关闭被动FTP模式
–retr-symlinks:下载链接指向的文件,而不是链接文件本身
8.递归下载
-r(–recursive):打开递归下载功能
-l DEPTH(–level=DEPTH):设置下载目录深度
–delete-after:每个文件下载后即删除
-k(–convert-links):下载完毕后,转换链接为相对链接
-K(–backup-converted):当转换连接时,保留原始备份为.orig
-m(–mirror):镜像下载,相当于同时打开-r -N -l inf –no-remove-listing
-p(–page-requisites):下载单页面所需的所有元素
–strict-comments:打开严格HTML注释解析
9.递归下载时的接受/拒绝选项
-A ACCLIST(–accept ACCLIST):指定接受的文件(逗号隔开的后缀名,或句式)
-R REJLIST –reject REJLIST:拒绝文件名单
-D DOMAIN-LIST(–domains=DOMAIN-LIST):设置追随的域名(逗号隔开)
–exclude-domains DOMAIN-LIST:设置不追随的域名
–follow-ftp:在HTML文档中追踪FTP
–follow-tags=LIST:设置追踪的tag
–ignore-tags=LIST:设置忽略的tag
–ignore-case:匹配文件或目录时忽略大小写
-H(–span-hosts):递归下载时,允许垮主机
-L(–relative):只追踪相对链接
-I LIST(–include-directories=LIST):设置追踪目录(逗号隔开,可含通配符)
-X LIST(–exclude-directories=LIST): 排除的追踪目录
-np(–no-parent):不进入父母录