1.命令作用
非交互式网络下载器(The non-interactive network downloader);注意:最小安装没有此命令,需yum -y install wget安装
2.命令语法
Usage: wget [OPTION]... [URL]...
3.参数详解
OPTION:
Startup:
- -V, --version,显示wget的版本并退出
- -h, --help,打印帮助信息
- -b, --background,启动后进入后台执行
- -e, --execute=COMMAND,将该命令当作是.wgetrc文件的一部分来执行,全局是/etc/wgetrc,用户级是~/.wgetrc,-e参数的命令优先级高于wgetrc,可以指定多个-e命令
Logging and input file(日志和输入文件):
- -o, --output-file=FILE,将下载日志信息写入文件
- -a, --append-output=FILE,将下载日志消息追加到文件中
- -d, --debug,打印大量调试信息
- -q, --quiet,静音(无输出)
- -v, --verbose,显示详细信息(默认参数)
- -nv, --no-verbose,关闭详细信息,但也会显示一些信息
- --report-speed=TYPE,输出带宽以"类型"表示;类型可以是"bits"
- -i, --input-file=FILE,将下载的一个或多个url写入到文件,然后指定文件进行下载
- -F, --force-html,与-i结合使用,将-i指定的文件可以是HTML格式(<a href="url">)
- -B, --base=URL,以指定的URL为基础链接,结合-i -F在基础链接后补齐完整的url进行下载
- --config=FILE,指定要使用的配置文件,设置参数参考/etc/wgetrc
Download(下载):
- -t, --tries=NUMBER,设置重试次数为NUMBER(0代表无限次)
- --retry-connrefused,即使连接被拒绝,也要重试
- -O, --output-document=FILE,指定下载到本地的文件名称(可与远程源文件名称不一样)
- -nc, --no-clobber,当将要下载的文件已经存在,则跳过下载
- -c, --continue,恢复获取部分下载的文件,即断点续传
- --progress=TYPE,选择进度指示器类型,可取值dot、bar(默认)、bar:force
- -N, --timestamping,除非文件更新时间比本地文件更新时间更晚,否则不要重新下载文件
- --no-use-server-timestamps,不要将本地文件的时间戳设置为与服务器上的时间戳相同
- -S, --server-response,打印服务器响应信息
- --spider,不下载任何东西
- -T, --timeout=SECONDS,设置所有超时时间值为SECONDS(单位秒)
- --dns-timeout=SECS,设置DNS解析超时时间为SECS(单位秒)
- --connect-timeout=SECS,设置连接超时时间为SECS(单位秒)
- --read-timeout=SECS,设置读超时为SECS(单位秒)
- -w, --wait=SECONDS,每次下载之间间隔为SECONDS(单位秒)
- --waitretry=SECONDS,在每次下载重试之间等待1..SECONDS(单位秒)
- --random-wait,每次检索之间需等待 0.5*等待时间...1.5*等待时间的间隔时间
- --no-proxy,明确关闭代理
- -Q, --quota=NUMBER,指定下载量限制(无效果),默认单位字节或者千/兆字节(k/m)
- --bind-address=ADDRESS,绑定本地主机的ADDRESS(主机名或IP地址)
- --limit-rate=RATE,将下载速率限制为RATE
- --no-dns-cache,禁用DNS查找的缓存功能
- --restrict-file-names=OS,将文件名中的字符限制为OS(unix | windows)允许的字符;即强制下载的文件名转换为当前系统兼容的文件名格式,特别是文件名带有空格、\、/、:、*、?、"、<、>、|等特殊字符,可能会转换为下划线(_)
- --ignore-case,在匹配文件/目录时忽略大小写(无效果)
- -4, --inet4-only,仅连接至IPv4地址(默认)
- -6, --inet6-only,仅连接至IPv6地址
- --prefer-family=FAMILY,优先连接到指定类型的地址, 可取值IPv6、IPv4、none
- --user=USER,设置ftp和http的用户都为USER
- --password=PASS,设置ftp和http的用户密码都为PASS
- --ask-password,提示输入密码
- --no-iri,关闭IRI支持,强制使用传统ASCII编码处理URL,避免因非ASCII字符(如中文、日文等)导致的解析错误
- --local-encoding=ENC,将ENC用作IRIs的本地编码方式,如UTF-8、ASCII等
- --remote-encoding=ENC,将ENC设为默认的远程编码,如UTF-8、ASCII等
- --unlink,在覆盖之前删除文件(无效果)
Directories(目录):
- -nd, --no-directories,不创建目录;下载目录时,将递归下的文件都下载当前目录
- -x, --force-directories,强制创建目录(默认会创建)
- -nH, --no-host-directories,不创建主机目录;目录下载默认会创建一个以主机名/IP地址的最外层目录,指定该参数后,不再创建这个主机名/IP地址的最外层目录
- --protocol-directories,最外层目录使用协议名称(http服务的下载最外层是http目录),将主机名/IP地址的目录作为第二层目录
- -P, --directory-prefix=PREFIX,将文件保存到PREFIX/...;即指定下载的最外层目录名称
- --cut-dirs=NUMBER,忽略远程目录组件的编号;http://192.168.118.194/dir1/dir2/dir3为例;指定-nH仅不会生成"192.168.118.194"目录;指定--cut-dirs=1仅不生成dir1;指定-cut-dirs=2仅不生成dir1/dir2
HTTP options(HTTP参数):
- --http-user=USER,设置http用户名称为USER
- --http-password=PASS,设置http密码为PASS
- --no-cache,禁止服务器缓存数据
- --default-page=NAME,更改默认页面名称(通常此名称为index.html),用于目录下载场景
- -E, --adjust-extension,以正确的扩展名保存HTML/CSS文件;保证可正确打开文件
- --ignore-length,忽略Content-Length标头字段;当http获取错误的Content-Length标头信息,下载会失败,可以添加该参数尝试是否可以正常下载
- --header=STRING,在标题中插入STRING字符串
- --max-redirect=number,指定针对某一资源可遵循的最大重定向次数(默认值20)
- --proxy-user=USER,将USER设为代理用户名
- --proxy-password=PASS,将PASS设为代理密码
- --referer=URL,在HTTP请求中包含'Referer: URL'这一头部信息
- --save-headers,将HTTP头部保存到文件中
- -U, --user-agent=AGENT,标识为AGENT而非Wget/VERSION
- --no-http-keep-alive,禁用HTTP中的持续连接(即持久性连接)
- --no-cookies,不使用cookies
- --load-cookies=FILE,在会话开始前从文件(FILE)中加载Cookies
- --save-cookies=FILE,在会话结束后将Cookies保存至文件(FILE)中
- --keep-session-cookies,加载并保存会话(非永久性)Cookies
- --post-data=STRING,所有的HTTP请求,使用POST方法;发送字符串(STRING)形式的数据
- --post-file=FILE,所有的HTTP请求,使用 POST 方法;发送文件(FILE)的内容;如登录到服务:wget --save-cookies cookies.txt --post-data 'user=foo&password=bar' http://server.com/auth.php;
- --content-disposition,在选择本地文件名时,需遵循Content-Disposition标头的规定(此功能尚处于试验阶段)
- --content-on-error,在服务器出现错误时输出接收到的内容
- --auth-no-challenge,会为所有请求发送基本HTTP认证信息,而无需先等待服务器发出挑战
HTTPS(SSL/TLS)options:(wget必须使用SSL库进行编译)
- --secure-protocol=PR,请选择安全协议,PR可取值auto, SSLv2, SSLv3, TLSv1, TLSv1_1和 TLSv1_2
- --no-check-certificate,不要验证服务器的证书
- --certificate=FILE,客户端证书文件
- --certificate-type=TYPE,客户端证书类型,可为PEM或DER
- --private-key=FILE,私钥文件
- --private-key-type=TYPE,私钥类型,可为PEM或DER
- --ca-certificate=FILE,指定CA证书文件
- --ca-directory=DIR,指定存储CA hash表的目录
- --random-file=FILE,包含随机数据的文件,用于为SSL随机数生成器进行初始化填充
- --egd-file=FILE,将EGD插口命名为包含随机数据的文件名
FTP options(FTP参数):
- --ftp-user=USER,设置ftp的用户为USER
- --ftp-password=PASS,设置ftp的密码为PASS
- --no-remove-listing,下载FTP目录时不删除生成的临时索引文件('.listing')
- --no-glob,关闭FTP文件名通配符功能
- --no-passive-ftp,禁用"passive"传输模式
- --preserve-permissions,保留远程文件权限
- --retr-symlinks,在递归操作时,获取链接到的文件(而非目录)
WARC options:
- --warc-file=FILENAME,将请求/响应数据保存为"FILENAME.warc.gz"的文件
- --warc-header=STRING,将字符串(STRING)插入到--warc-file指定的文件中
- --warc-max-size=NUMBER,将--warc-file指定文件的最大大小设置为NUMBER
- --warc-cdx,编写CDX指数文件
- --warc-dedup=FILENAME,请勿保存此CDX文件中列出的记录
- --no-warc-compression,不要使用GZIP对WARC文件进行压缩
- --no-warc-digests,不要计算SHA1校验码
- --no-warc-keep-log,不要将日志文件存储在WARC格式记录中
- --warc-tempdir=DIRECTORY,指定由WARC写入器创建的临时文件的存放位置
Recursive download(递归下载):
- -r, --recursive,指定目录递归下载
- -l, --level=NUMBER,最大递归深度(inf或者0表示无穷).
- --delete-after,下载完成后删除本地文件(即下载文件后立即删除文件)
- -k, --convert-links,将从下载的HTML或CSS文件中生成的链接指向本地文件
- --backups=N,重复下载相同名称的文件时,设置保留N个备份文件
- -K, --backup-converted,重复下载相同名称的文件时,新下载文件名称定义为filename.N(N是从1开始递增的正整数)
- -m, --mirror,参数-N -r -l inf --no-remove-listing的快捷方式
- -p, --page-requisites,获取显示HTML页面所需的所有图像等资料
- --strict-comments,将页面内容输入到index.html,与curl UR输出一样
Recursive accept/reject(递归接受/拒绝):
- -A, --accept=LIST,以逗号分隔的可接受扩展名列表;即只下载指定后缀名称的文件
- -R, --reject=LIST,以逗号分隔的被拒绝的扩展名列表;即不下载指定后缀名称的文件
- --accept-regex=REGEX,正则表达式匹配有效的网址
- --reject-regex=REGEX,正则表达式匹配到了被拒绝的网址
- --regex-type=TYPE,正则表达式类型(posix或pcre)
- -D, --domains=LIST,以逗号分隔的被认可的域名列表
- --exclude-domains=LIST,以逗号分隔的被拒绝的域名列表
- --follow-ftp,从HTML文档中追踪FTP链接
- --follow-tags=LIST,以逗号分隔的所遵循的 HTML 标签列表
- --ignore-tags=LIST,以逗号分隔的被忽略的 HTML 标签列表
- -H, --span-hosts,在递归操作时访问外部主机
- -L, --relative,仅遵循相关链接
- -I, --include-directories=LIST,允许下载的目录列表;未指定的目录不下载
- --trust-server-names,使用重定向网址最后一个部分所指定的名称
- -X, --exclude-directories=LIST,排除的目录列表;即http服务根目录下排除一些目录,命令如:wget -r -X dir1,dir3 http://192.168.118.194
- -np, --no-parent,不要进入父目录;即不下载父目录同层级内容;如wget -r -np http://192.168.118.194/dir1/dir2下载后,"ll 192.168.118.194"查看只有dir1目录,如不指定-np则除了dir1目录外还有其他目录
4.常用用例
4.1.Startup
4.1.1.无参数直接下载
[root@node2 dir1]# wget http://192.168.118.194/dir1/test1.txt # 文件下载
--2025-07-17 10:40:18-- http://192.168.118.194/dir1/test1.txt
Connecting to 192.168.118.194:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 562913280 (537M) [text/plain]
Saving to: ‘test1.txt.3’
100%[==========================================================================================================>] 562,913,280 333MB/s in 1.6s
2025-07-17 10:40:20 (333 MB/s) - ‘test1.txt.3’ saved [562913280/562913280]
[root@node2 dir1]#
[root@node2 dir1]# wget http://192.168.118.194/dir1/dir2 # 无参数下载目录,仅下载指定目录,目录下的其他内容不会被下载,目录下载一般需要添加递归参数-r
--2025-07-17 10:42:40-- http://192.168.118.194/dir1/dir2
Connecting to 192.168.118.194:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://192.168.118.194/dir1/dir2/ [following]
--2025-07-17 10:42:40-- http://192.168.118.194/dir1/dir2/
Reusing existing connection to 192.168.118.194:80.
HTTP request sent, awaiting response... 200 OK
Length: 1313 (1.3K) [text/html]
Saving to: ‘dir2’
100%[==========================================================================================================>] 1,313 --.-K/s in 0s
2025-07-17 10:42:40 (232 MB/s) - ‘dir2’ saved [1313/1313]
[root@node2 dir1]#
# 或者centos7 外网yum配置文件下载: wget http://mirrors.aliyun.com/repo/Centos-7.repo
4.1.2.后台下载
# 放后台下载,会提示对应的pid,需要等到具体pid进程已经完成,文件才下载完成,或者查看wget-log文件查看下载进度
[root@node2 dir1]# wget -b http://192.168.118.194/dir1/test1.txt
Continuing in background, pid 8955.
Output will be written to ‘wget-log’.
[root@node2 dir1]# ll
total 550540
-rw-r--r-- 1 root root 562913280 Jul 16 15:57 test1.txt
-rw-r--r-- 1 root root 835924 Jul 17 10:45 wget-log
[root@node2 dir1]#
4.1.3.-e指定指令下载
# limit_rate用于限制下载的速率,robots忽略目标网站的robots.txt限制强制下载
[root@node2 dir1]# wget -e limit_rate=10M -e robots=off http://192.168.118.194/dir1/test1.txt
--2025-07-17 10:38:07-- http://192.168.118.194/dir1/test1.txt
Connecting to 192.168.118.194:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 562913280 (537M) [text/plain]
Saving to: ‘test1.txt.2’
7% [=======> ] 43,909,120 10.0MB/s eta 49s
4.2.Logging and input file(日志和输入文件)
4.2.1.下载指定输出日志
# 指定日志下载后,执行界面不会打印下载进度,但日志文件里面有下载进度,-o是覆盖日志,-a是追加日志
[root@node2 test]# wget -o download.log http://192.168.118.194/dir1/test1.txt
[root@node2 test]# wget -a download.log http://192.168.118.194/dir1/test1.txt
4.2.2.下载打印信息参数
# 1.打印更多调试信息: 是打印连接部分的调试信息,实际下载还是只显示进度条
[root@node2 test]# wget -d http://192.168.118.194/dir1/test1.txt
# 2.打印详细信息,是默认参数,可以不指定
[root@node2 test]# wget -v http://192.168.118.194/dir1/test1.txt
# 3.不打印详细信息,不显示下载连接信息和进度信息,只打印下载结果信息
[root@node2 test]# wget -nv http://192.168.118.194/dir1/test1.txt
# 4.静默输出,不输出任何信息
[root@node2 test]# wget -q http://192.168.118.194/dir1/test1.txt
4.2.3.指定下载列表文件
# 1.-i指定的文件里面是下载的url串,可以指定多个以行分隔
[root@node2 test]# cat inputfile
http://192.168.118.194/dir1/test1.txt
http://192.168.118.194/dir1/test2.csv
[root@node2 test]# wget -i inputfile
# 2.-i指定文件里的url是html格式,需要指定-F参数
[root@node2 test]# cat input.html
<a href="http://192.168.118.194/dir1/test1.txt">
[root@node2 test]# wget -F -i input.html
# 3.-i指定的只是文件名称,没有完整的url,需要-B指定基本的url串
[root@node2 test]# cat filelist
test1.txt
test2.csv
[root@node2 test]# wget -B http://192.168.118.194/dir1/ -i filelist
4.2.4.指定配置文件下载
# 注意:配置文件参数会被-e指定的参数覆盖
[root@node2 test]# cat config
quiet = off
limit_rate = 10M
[root@node2 test]# wget --config=config http://192.168.118.194/dir1/test2.csv
4.3.Download(下载)
4.3.1.自定义下载文件名称
# 下载源文件名为test1.txt,下载到本地的文件名为test.csv
[root@node2 test]# wget -O test.csv http://192.168.118.194/dir1/test1.txt
4.3.2.下载文件已存在的处理方式
# 1.默认情况下,当下载文件已经存在,重复下载,新下载的文件会命名为"filename.N";N是从1开始递增的整数值,下载过程中可以看到"Saving to: ‘test1.txt.1’"的字样
# 2.当下载文件已经存在,指定-nc则跳过下载;执行会提示文件已存在,没有下载
[root@node2 test]# wget -nc http://192.168.118.194/dir1/test1.txt
File ‘test1.txt’ already there; not retrieving.
# 3.当下载文件已经存在,指定-N时,仅服务源文件更新时间比本地时间更新则下载(即更新则下载,没更新则不下载)
[root@node2 test]# wget -N http://192.168.118.194/dir1/test1.txt
# 4.当下载文件已经存在,指定--backups时,会将本地已经存在的文件备份为"filename.N",然后下载文件
[root@node2 test]# wget --backups=3 http://192.168.118.194/dir1/test1.txt
4.3.3.继续下载未下载完的文件(断点续传)
# 指定-c断点续传,是接着上次下载断开的位置继续下载(请确保文件没有发生变化情况下使用)
[root@node2 test]# wget http://192.168.118.194/dir1/test1.txt
--2025-07-17 12:07:35-- http://192.168.118.194/dir1/test1.txt
Connecting to 192.168.118.194:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 562913280 (537M) [text/plain]
Saving to: ‘test1.txt’
28% [=============================> ] 158,508,772 374MB/s ^C
[root@node2 test]# wget -c http://192.168.118.194/dir1/test1.txt
--2025-07-17 12:07:44-- http://192.168.118.194/dir1/test1.txt
Connecting to 192.168.118.194:80... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 562913280 (537M), 355670247 (339M) remaining [text/plain]
Saving to: ‘test1.txt’
100%[+++++++++++++++++++++++++++++++++++++++===================================================================>] 562,913,280 377MB/s in 0.9s
2025-07-17 12:07:45 (377 MB/s) - ‘test1.txt’ saved [562913280/562913280]
[root@node2 test]#
4.3.4.指定进度显示效果
[root@node2 test]# wget --progress=bar http://192.168.118.194/dir1/test1.txt # 默认效果
[root@node2 test]# wget --progress=dot http://192.168.118.194/dir1/test1.txt
4.3.5.检查远程文件是否存在
# 需要观察输出信息中是否显示需要的文件,如果显示的不是url串里面的文件,则不存在
# 不能只看最后一行,最后一行显示不准确
[root@node2 test]# wget --spider http://192.168.118.194/dir1/test1.txt
Spider mode enabled. Check if remote file exists.
--2025-07-17 12:16:20-- http://192.168.118.194/dir1/test1.txt
Connecting to 192.168.118.194:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 562913280 (537M) [text/plain]
Remote file exists.
[root@node2 test]#
4.3.6.超时参数设置
# 1.设置所有超时时间为10秒
[root@node2 test]# wget -T 10 http://192.168.118.194/dir1/test1.txt
# 2.设置DNS解析超时时间为10秒
[root@node2 test]# wget --dns-timeout=10 http://192.168.118.194/dir1/test1.txt
# 3.设置连接超时时间为10秒
[root@node2 test]# wget --connect-timeout=10 http://192.168.118.194/dir1/test1.txt
# 4.设置读超时为10秒
[root@node2 test]# wget --read-timeout=10 http://192.168.118.194/dir1/test1.txt
4.3.7.指定下载之间间隔时间
# 多文件下载时,指定每个文件下载的时间间隔
[root@node2 test]# wget -w 3 http://192.168.118.194/dir1/test1.txt http://192.168.118.194/dir1/test2.csv
4.3.8.限制下载速率
# 限制下载速率为2MB每秒,下载进度后可以看到下载的速率
[root@node2 test]# wget --limit-rate=2M http://192.168.118.194/dir1/test1.txt
--2025-07-17 12:34:14-- http://192.168.118.194/dir1/test1.txt
Connecting to 192.168.118.194:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 562913280 (537M) [text/plain]
Saving to: ‘test1.txt.2’
1% [> ] 6,414,336 2.00MB/s eta 4m 25s
4.3.9.用户认证下载
注意:http服务用户密码怎么配置,可以查看curl命令详解的4.5章节
[root@node2 test]# wget http://192.168.118.194/uploads/tfile.txt # 之间下载提示授权失败,需要用户密码
--2025-07-17 12:38:34-- http://192.168.118.194/uploads/tfile.txt
Connecting to 192.168.118.194:80... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Authorization failed.
[root@node2 test]# wget --user=admin --password=123456 http://192.168.118.194/uploads/tfile.txt # 明文指定用户名密码
--2025-07-17 12:39:06-- http://192.168.118.194/uploads/tfile.txt
Connecting to 192.168.118.194:80... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Reusing existing connection to 192.168.118.194:80.
HTTP request sent, awaiting response... 200 OK
Length: 21 [text/plain]
Saving to: ‘tfile.txt’
100%[==========================================================================================================>] 21 --.-K/s in 0s
2025-07-17 12:39:06 (4.65 MB/s) - ‘tfile.txt’ saved [21/21]
[root@node2 test]# wget --user=admin --ask-password http://192.168.118.194/uploads/tfile.txt # 密码明文不安全,可使用交互式密码输入提示
Password for user ‘admin’:
--2025-07-17 12:39:32-- http://192.168.118.194/uploads/tfile.txt
Connecting to 192.168.118.194:80... connected.
HTTP request sent, awaiting response... 401 Unauthorized
Reusing existing connection to 192.168.118.194:80.
HTTP request sent, awaiting response... 200 OK
Length: 21 [text/plain]
Saving to: ‘tfile.txt.1’
100%[==========================================================================================================>] 21 --.-K/s in 0s
2025-07-17 12:39:32 (7.31 MB/s) - ‘tfile.txt.1’ saved [21/21]
[root@node2 test]#
4.4.Directories(目录)
4.4.1.目录递归下载
# 目录递归下载,每个文件都会显示下载进度,且出了服务里面的目录文件外,还会下载一些
[root@node2 test]# wget -r http://192.168.118.194/dir1/dir2
... ... # 下载输出信息,此处省略
[root@node2 test]# tree 192.168.118.194/ # 目录结构从http的IP地址开始,且还保存一些html和gif文件
192.168.118.194/
├── dir1
│ ├── dir2
│ │ ├── dir3
│ │ │ ├── index.html
│ │ │ ├── index.html?C=D;O=A
│ │ │ ├── index.html?C=D;O=D
│ │ │ ├── index.html?C=M;O=A
... ... # 下载到本地的目录结构
4.4.1.不创建所有目录
# 将下载的文件全部存放在当前目录,不会生成目录
[root@node2 test]# wget -r -nd http://192.168.118.194/dir1/dir2
4.4.3.不创建主机目录
# 默认是会创建名为"192.168.118.194"的主机目录为下载的最外层目录,指定-nH后,最外层从主机名后的dir1层开始,如果有dir1同级有多个目录,都会显示
[root@node2 test]# wget -r -nH http://192.168.118.194/dir1/dir2
... ...
[root@node2 test]# ll
total 36
drwxr-xr-x 4 root root 320 Jul 17 13:10 dir1
drwxr-xr-x 4 root root 303 Jul 17 13:10 dir2
drwxr-xr-x 4 root root 303 Jul 17 13:10 dir3
drwxr-xr-x 2 root root 73 Jul 17 13:10 icons
-rw-r--r-- 1 root root 1105 Jul 17 13:10 index.html
-rw-r--r-- 1 root root 1105 Jul 17 13:10 index.html?C=D;O=A
-rw-r--r-- 1 root root 1105 Jul 17 13:10 index.html?C=D;O=D
-rw-r--r-- 1 root root 1105 Jul 17 13:10 index.html?C=M;O=A
-rw-r--r-- 1 root root 1105 Jul 17 13:10 index.html?C=M;O=D
-rw-r--r-- 1 root root 1105 Jul 17 13:10 index.html?C=N;O=A
-rw-r--r-- 1 root root 1105 Jul 17 13:10 index.html?C=N;O=D
-rw-r--r-- 1 root root 1105 Jul 17 13:10 index.html?C=S;O=A
-rw-r--r-- 1 root root 1105 Jul 17 13:10 index.html?C=S;O=D
[root@node2 test]#
4.4.4.指定下载到本地的最外层目录
# 1.默认是服务的主机名/IP地址作为最外层目录,最外层是IP地址目录
[root@node2 test]# wget -r http://192.168.118.194/dir1/dir2
... ...
[root@node2 test]# ll 192.168.118.194/dir1/
# 2.指定-nH后,会去除最外层的服务的主机名/IP地址目录,从IP地址目录下一层开始
[root@node2 test]# wget -r -nH http://192.168.118.194/dir1/dir2
... ...
[root@node2 test]# ll dir1/
# 3.指定服务协议名作为最外层目录,http服务则最外层目录为http,然后是IP地址目录
[root@node2 test]# wget -r --protocol-directories http://192.168.118.194/dir1/dir2
... ...
[root@node2 test]# ll http/192.168.118.194/dir1/
# 4.-P自定义最外层目录名称
[root@node2 test]# wget -r -P AAA http://192.168.118.194/dir1/dir2
... ...
[root@node2 test]# ll AAA/192.168.118.194/dir1/
4.4.5.忽略目录的层级
# 1.值为1,从IP地址目录后开始计算,1代表忽略一层
[root@node2 test]# wget -r --cut-dirs=1 http://192.168.118.194/dir1/dir2/dir3
... ...
[root@node2 test]# ll 192.168.118.194/dir2/dir3/ # 忽略1层是忽略dir1
# 2.值为2,从IP地址目录后开始计算,2代表忽略两层
[root@node2 test]# wget -r --cut-dirs=2 http://192.168.118.194/dir1/dir2/dir3
[root@node2 test]# ll 192.168.118.194/dir3/ # 忽略2层是忽略dir1/dir2
4.5.HTTP参数
4.5.1.http服务指定用户名密码
[root@node2 test]# wget --http-user=admin --http-password=123456 http://192.168.118.194/uploads/tfile.txt
4.5.2.更改下载的默认页面名称(index.html名称修改)
# 目录递归下载会伴随着index.html相关的信息文件下载,可以进行重命名
[root@node2 test]# wget -r --default-page=aaaa.html http://192.168.118.194/dir1/dir2
... ...
[root@node2 test]# ll 192.168.118.194/
total 36
-rw-r--r-- 1 root root 1105 Jul 17 13:34 aaaa.html
-rw-r--r-- 1 root root 1105 Jul 17 13:34 aaaa.html?C=D;O=A
-rw-r--r-- 1 root root 1105 Jul 17 13:34 aaaa.html?C=D;O=D
... ...
[root@node2 test]#
4.5.3.http头部信息添加到下载文件的开头
# 改方法已经改变了下载文件内容,不建议使用
[root@node2 test]# wget --save-headers http://192.168.118.194/dir1/test1.txt
... ...
[root@node2 test]# head test1.txt
HTTP/1.1 200 OK
Date: Thu, 17 Jul 2025 05:37:15 GMT
Server: Apache/2.4.6 (CentOS)
Last-Modified: Wed, 16 Jul 2025 07:57:13 GMT
ETag: "218d6000-63a073da19e2c"
Accept-Ranges: bytes
Content-Length: 562913280
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/plain; charset=UTF-8
[root@node2 test]#
4.6.Recursive download(递归下载)
4.6.1.指定递归深度下载
# 1.url指定到dir1,-l指定1层深度,即下载dir1目录下的所有文件和目录名称(包括index.html,但不包括其下的文件和目录)
[root@node2 test]# wget -r -l 1 http://192.168.118.194/dir1/
... ...
[root@node2 test]# ll 192.168.118.194/dir1/dir2/* # dir1下1层dir2目录下没有实际文件
-rw-r--r-- 1 root root 1313 Jul 17 13:42 192.168.118.194/dir1/dir2/index.html
# 2.url指定到dir1,-l指定2层深度,即下载dir1目录下所有文件和目录(包括其下的文件和目录)
[root@node2 test]# wget -r -l 2 http://192.168.118.194/dir1/
... ...
[root@node2 test]# ll 192.168.118.194/dir1/dir2/dir3/* # dir1下2层到dir3目录下没有实际的文件
-rw-r--r-- 1 root root 1122 Jul 17 13:45 192.168.118.194/dir1/dir2/dir3/index.html
[root@node2 test]#
4.6.2.测试是否可正常下载(下载后立即删除)
# 下载过程中可以在其他会话查看到本地有下载的文件存在,下载结束后文件就不存在了,下载到本地,下载完成后立即删除
[root@node2 test]# wget --delete-after http://192.168.118.194/dir1/test1.txt
4.6.3.文件存在,则备份文件(指定最多备份多少份)
# 文件已经存在,会将本地文件备份为filename.N(N从1开始依次递增的整数),指定3,则最多备份三份,多余的会被删除
[root@node2 test]# wget --backups=3 http://192.168.118.194/dir1/test1.txt
4.7.Recursive accept/reject(递归接受/拒绝)
4.7.1.只下载指定后缀的文件
# 只下载csv作为后缀名的文件,其中dir1中的test1.txt文件没有下载
# 注意: html相关的文件也没有下载
[root@node2 test]# wget -r -A csv http://192.168.118.194/dir1
... ...
[root@node2 test]# ll 192.168.118.194/dir1/
total 1099440
drwxr-xr-x 4 root root 31 Jul 17 14:12 dir2
drwxr-xr-x 2 root root 23 Jul 17 14:12 dir21
-rw-r--r-- 1 root root 562913280 Jul 16 23:30 test2.csv
-rw-r--r-- 1 root root 562913280 Jul 16 23:30 test3.csv
[root@node2 test]#
4.7.2.不下载指定后缀的文件
# 不下载csv作为后缀名的文件,其中dir1中的test2.csv和test3.csv文件没有下载
[root@node2 test]# wget -r -R csv http://192.168.118.194/dir1
... ...
[root@node2 test]# ll 192.168.118.194/dir1/
total 549756
drwxr-xr-x 4 root root 274 Jul 17 14:12 dir2
drwxr-xr-x 2 root root 250 Jul 17 14:12 dir21
-rw-r--r-- 1 root root 1923 Jul 17 14:12 index.html?C=D;O=A
-rw-r--r-- 1 root root 1923 Jul 17 14:12 index.html?C=D;O=D
-rw-r--r-- 1 root root 1923 Jul 17 14:12 index.html?C=M;O=A
-rw-r--r-- 1 root root 1923 Jul 17 14:12 index.html?C=M;O=D
-rw-r--r-- 1 root root 1923 Jul 17 14:12 index.html?C=N;O=A
-rw-r--r-- 1 root root 1923 Jul 17 14:12 index.html?C=N;O=D
-rw-r--r-- 1 root root 1923 Jul 17 14:12 index.html?C=S;O=A
-rw-r--r-- 1 root root 1923 Jul 17 14:12 index.html?C=S;O=D
-rw-r--r-- 1 root root 178 Jul 14 20:16 post
-rw-r--r-- 1 root root 562913280 Jul 16 15:57 test1.txt
[root@node2 test]#
4.7.3.IP地址目录下下载指定目录
# 1.服务实际存在dir1、dir2、dir3,-I参数指定只下载dir1和dir3目录
[root@node2 test]# wget -r -I dir3,dir1 http://192.168.118.194
... ...
[root@node2 test]# ll 192.168.118.194/
total 4
drwxr-xr-x 4 root root 320 Jul 17 14:32 dir1
drwxr-xr-x 4 root root 303 Jul 17 14:32 dir3
-rw-r--r-- 1 root root 1105 Jul 17 14:32 index.html
[root@node2 test]#
# (存在问题)
# 2.url指定的dir2目录下有dir3和dir31,想只下载dir3,执行后目录全部为空,只有IP地址目录(根目录)有效
[root@node2 test]# wget -r -I dir3 http://192.168.118.194/dir1/dir2/
... ...
[root@node2 test]# ll 192.168.118.194/
total 0
drwxr-xr-x 3 root root 18 Jul 17 14:35 dir1
[root@node2 test]# ll 192.168.118.194/dir1/
total 0
drwxr-xr-x 2 root root 24 Jul 17 14:35 dir2
[root@node2 test]# ll 192.168.118.194/dir1/dir2/
total 4
-rw-r--r-- 1 root root 1313 Jul 17 14:35 index.html
[root@node2 test]#
4.7.4.IP地址目录下排除下载目录
# url后面包含了目录,但不是在"192.168.118.194/dir1/dir2"目录下排除dir3目录下载
# 而是在192.168.118.194 IP地址目录下排除dir3目录下载
[root@node2 test]# wget -r -X dir3 http://192.168.118.194/dir1/dir2
... ...
[root@node2 test]# ll 192.168.118.194/ | grep ^d # 查看没有dir3目录
drwxr-xr-x 4 root root 320 Jul 17 14:16 dir1
drwxr-xr-x 4 root root 303 Jul 17 14:16 dir2
drwxr-xr-x 2 root root 73 Jul 17 14:16 icons
[root@node2 test]#
[root@node2 test]# ll 192.168.118.194/dir1/dir2 | grep ^d # 查看有dir3目录
drwxr-xr-x 2 root root 267 Jul 17 14:16 dir3
drwxr-xr-x 2 root root 232 Jul 17 14:16 dir31
[root@node2 test]#
4.7.5.不进入父目录(不下载父目录同层级内容)
# 1.url指定到dir2,dir2的父目录是dir1,则dir1目录同层的其他内容不会被下载
[root@node2 test]# wget -r -np http://192.168.118.194/dir1/dir2
... ...
[root@node2 test]# ll 192.168.118.194/
total 0
drwxr-xr-x 4 root root 320 Jul 17 14:22 dir1
[root@node2 test]#
# 2.url指定到dir3,dir3的父目录是dir2、dir1,则dir2、dir1目录同层级的其他内容不会被下载
[root@node2 test]# wget -r -np http://192.168.118.194/dir1/dir2/dir3
[root@node2 test]# ll 192.168.118.194/
total 0
drwxr-xr-x 3 root root 18 Jul 17 14:25 dir1
[root@node2 test]# ll 192.168.118.194/dir1/
total 0
drwxr-xr-x 4 root root 274 Jul 17 14:25 dir2
[root@node2 test]#
8万+

被折叠的 条评论
为什么被折叠?



