名称
wget - 非交互式网络下载工具
总览
wget [选项]… [URL]…
描述
GNU Wget是一个用于在Web上下载文件的非交互式免费工具,支持HTTP,HTTPS和FTP协议,以及HTTP代理的方式。 Wget是非交互的,也意味着它可以在后台运行,而不用用户保持登录状态,不像用网络浏览器那样。
选项
启动:
-V, --version 显示 Wget 的版本并且退出。
-h, --help 打印帮助选项。
-b, -background 启动后进入后台操作。
-e, -execute=COMMAND 运行‘.wgetrc’形式的命令,.wgetrc是用户使用wget的一个初始化配置命令参数的文件。
日志记录及输入文件:
-o, --output-file=文件 将日志消息写入到指定文件中(如果指定文件之前有内容,则会被清空)。
-a, --append-output=文件 将日志消息追加到指定文件的末端(如果指定文件之前有内容,不会被清空)。
-d, --debug 打印调试输出(如果没有调试信息输出,则说明此命令安装时没有编译支持debug模式)。
-q, --quiet 安静模式(不输出信息)。
-v, --verbose 详细输出模式(默认)。
-nv, --non-verbose 关闭详细输出模式,但不进入安静模式。
-i, --input-file=文件 下载从指定文件中找到的 URL;如果同时指定命令行和文件,则先读取命令行再读取文件;--force-html这个参数如果没被指定,则文件中的URL一行一个。
-F, --force-html 以 HTML 方式处理输入文件;可以让你从HTML文件中读取链接URL,但是得添加 "<base href=" url ">" 到HTML文件里面,或者使用--base=URL的方式来设置基本URL。
-B, --base=URL 使用 -F -i 文件选项时,在相对链接前添加指定的 URL,这样可以处理那些相对路径的url;比如说设置--base=‘http://foo/bar/a.html‘,则在HTML文件里面遇到‘../baz/b.html‘这种情况的时候,它将会被解析成 ‘http://foo/baz/b.html‘。
下载:
--bind-address=ip地址 使用本机的指定地址 (主机名称或 IP) 进行连接。(一般用在多ip的情况下)
-t, --tries=次数 配置重试次数(0 表示无限,默认重试20次,当遇到connection refused或者"not found" (404)时不再重试)。
--retry-connrefused 即使拒绝连接也重试。
-O --output-document=文件 将数据写入此文件中。
-nc, --no-clobber 比如说重复下载一个链接到本地,此选项代表不更改已经存在的文件,也不会使用在文件名后添加 .#(# 为数字)的方法写入新的文件。
-c, --continue 继续接收已下载了一部分的文件。
--progress=方式 选择下载进度条的表示方式。
-N, --timestamping 除非远程文件较新,否则不再取回。
-S, --server-response 显示HTTP或者FTP服务器头部回应消息。
--spider 不下载任何数据,此项作用行为像网络蜘蛛一样。
-T, --timeout=秒数 配置读取数据的超时时间 (秒数)。
-w, --wait=秒数 设置接收不同文件之间等待的秒数,推荐使用,可以减轻服务器的负载。
--waitretry=秒数 在失败下载后每次重试之间稍等一段时间 (由 1 秒至指定的 秒数不等)。
--random-wait 接收不同文件之间稍等一段时间(由 0 秒至 2*WAIT 秒不等)。
-Q, --quota=大小 配置接收数据的限额大小,这种限额限制对单个文件是没有影响的,比如说wget -Q10k ftp://wuarchive.wustl.edu/ls-lR.gz,那么无论 ls-lR.gz多大,都会被完全下载下来;一般用在递归下载或者从指定文件中下载。
--limit-rate=速率 限制下载的速率。
--dns-cache=off 禁止查找存于高速缓存中的 DNS。
--restrict-file-names=值 限制文件名中的字符为指定的 OS (操作系统) 所允许的字符,可被接收的值为unix, windows, nocontrol, ascii, lowercase, uppercase。
--user=用户名
--password=密码 为访问FTP或者HTTP指定用户名和密码,在访问FTP的情况下,可以被--ftp-user 和 --ftp-password选项覆盖,在访问HTTP的情况下,可以被--http-user 和 --http-password的选项覆盖
-4, --inet4-only 只支持IPV4
-6, --inet6-only 只支持IPV6
--no-iri 关闭internationalized URI ( IRI )的支持,--iri是打开internationalized URI ( IRI )的支持,默认是打开的
目录:
-nd --no-directories 不创建目录层次,当遇到递归下载的时候,所有的文件都保存在当前目录下。
-x, --force-directories 强制创建目录层次,即使有的不应该被创建,比如 wget -x http://fly.srk.fer.hr/robots.txt,将会被保存下载到fly.srk.fer.hr/robots.txt。
-nH, --no-host-directories 不创建含有远程主机名称的目录,比如说wget -r http://fly.srk.fer.hr/,将会创建一个目录以fly.srk.fer.hr/开始的目录,使用此选项则取消这种实现。
--protocol-directories 使用此选项wget -r http://host --protocol-directories,则在本地创建 http/host/这样的目录类型。
-P, --directory-prefix=名称 保存文件前先创建指定名称的目录。
--cut-dirs=数目 忽略远程目录中指定数目的目录层。
例子:
No options -> ftp.xemacs.org/pub/xemacs/
-nH -> pub/xemacs/
-nH --cut-dirs=1 -> xemacs/
-nH --cut-dirs=2 -> .
--cut-dirs=1 -> ftp.xemacs.org/xemacs/
HTTP 选项:
--default-page=文件名 选择一个做为默认的文件名,当遇到/结尾的时候,来设置保存数据到本地文件名。
-E --adjust-extension 这种选项可以在下载http://site.com/article.cgi?25这类URL是,下载到本地文件名变成article.cgi?25.html,wget 1.2版本之前为--html-extension(将所有 MIME 类型为 text/html 的文件都加上 .html 扩展文件名。)
--http-user=用户 配置 http 用户名。
--http-passwd=密码 配置 http 用户密码。
--no-http-keep-alive 禁用 HTTP keep-alive(持久性连接)。
--no-cache 禁用服务端缓存,这种情况下wget会在下载文件时发送Pragma: no-cache这样的指令给服务端
--no-cookies 禁用cookies机制
--load-cookies cookie文件 会话开始前由指定文件载入 cookie。
--save-cookies 文件 会话结束后将 cookie 保存至指定文件。
--ignore-length 忽略“Content-Length”文件头字段。
--header=字符串 在文件头中添加指定字符串。
比如:wget --header=‘Accept-Charset: iso-8859-2‘ \
--header=‘Accept-Language: hr‘ \
http://fly.srk.fer.hr/
--max-redirect=数字 最大重定向的次数,默认20
--proxy-user=用户 配置代理服务器用户名。
--proxy-passwd=密码 配置代理服务器用户密码。
--referer=URL 在 HTTP 请求中包含“Referer:URL”头。
-s, --save-headers 将 HTTP 头存入文件。
-U, --user-agent=AGENT-string 标志为 AGENT 而不是 Wget/VERSION。
--post-data=string 添加post提交内容信息
例子:
# Log in to the server. This can be done only once.
wget --save-cookies cookies.txt \
--post-data ‘user=foo&password=bar‘ \
http://server.com/auth.php
# Now grab the page or pages we care about.
wget --load-cookies cookies.txt \
-p http://server.com/interesting/article.php
这种情况下,如果服务器使用会话cookie来追踪用户认证信息,上面的例子是不起作用的,因为--save-cookies不会保持会话cookie的,所以cookie.txt将会是个空文件,如果想要保存会话cookie到文件的话,需要结合--keep-session-cookies一起使用。
--post-file=文件名 从文件中载入要post提交的内容信息
HTTPS (SSL) 选项:
--secure-protocol==值 选择 SSL 协议; 有效值为auto, SSLv2, SSLv3, TLSv1
--no-check-certificate 不检查服务器端证书
--certificate=文件 可选的客户段端证书。
--certificate-type=类型 指定客户端证书的类型,有效类型为 PEM(默认)或者 DER(也被称做ASN1)
--private-key=文件 从文件中读取私钥内容
--private-key-type=类型 设置私钥的类型,有效类型为PEM(默认)或者 DER
--ca-certificate=文件 以此文件做为捆绑认证中心(ca)的文件,类型必须为PEM,如果没有这个选项,wget会在系统指定的位置去找CA,这个位置在安装OpenSSL的时候就已经设定了
--ca-directory=目录位置 指定存在PEM格式的ca认证目录位置,如果存在多个ca认证时,使用--ca-directory要比--ca-certificate更有效率
--random-file=文件 选择此文件做为随机数据源来产生伪随机数
--egd-file=文件 EGD socket 文件名。EGD=Entropy Gathering Daemon
FTP 选项:
--ftp-user=user
--ftp-password=password 连接ftp服务器的用户名和密码
--no-remove-listing 在Wget方不删除“.listing”文件,这个文件包含从ftp服务器接收的源目录列表信息。
--no-glob 设置关闭识别有通配符的文件名。默认是打开的
--no-passive-ftp 不使用“被动”传输模式。默认是使用被动模式的
--retr-symlinks 在递归模式中,下载链接所指示的文件(连至目录则例外)。
递归下载:
-r, --recursive 递归下载。
-l, --level=数字 最大递归深度(inf 或 0 表示无限)。
--delete-after 告诉wget删除本地的每个下载完成的单个文件。
-k, --convert-links 将绝对链接转换为相对链接。
-K, --backup-converted 转换文件 X 前先将其备份为 X.orig。
-m, --mirror 等效于 -r -N -l inf --no-remove-listing 的选项。
-p, --page-requisites 下载所有显示完整网页所需的文件,例如图像。
--strict-comments 打开对 HTML 备注的严格(SGML)处理选项。
递归下载时有关接受/拒绝的选项:
-A, --accept=列表 接受的文件样式列表,以逗号分隔。
-R, --reject=列表 排除的文件样式列表,以逗号分隔。
-D, --domains=列表 接受的域列表,以逗号分隔。
--exclude-domains=列表 排除的域列表,以逗号分隔。
--follow-ftp 跟随 HTML 文件中的 FTP 链接。
--follow-tags=列表 要跟随的 HTML 标记,以逗号分隔。
--ignore-tags=列表 要忽略的 HTML 标记,以逗号分隔。
--ignore-case 忽略大小写
-H, --span-hosts 递归时可进入其它主机。
-L, --relative 只跟随相对链接。
-I, --include-directories=列表 要下载的目录列表。
-X, --exclude-directories=列表 要排除的目录列表。
-np, --no-parent 不搜索上层目录。
退出状态:
0 没有问题
1 通用错误代码
2 解析错误
3 文件I/O错误
4 网络失败
5 SSL认证失败
6 用户名或密码认证错误
7 协议错误
8 服务器端产生一个错误回应
相关文件:
/etc/wgetrc 默认wget全局配置初始化文件
.wgetrc 用户初始化文件