wget命令

  wget是Linux中的一个功能非常强大的下载工具,支持HTTP和FTP协议下载,支持断点续传、递归下载、批量下载、通过代理服务器下载等等。未安装wget的话,通过yum -y install wget即可一键安装wget及其依赖组件,wget功能虽然强大,但使用方式却很简单:wget [option]... [URL]通过wget -h可列出所有选项

[root@localhost /]# wget 
-bash: wget: command not found...
[root@localhost /]# yum -q -y install wget
[root@localhost /]# wget -h

这里摘取几个option以用说明,其它的可以通过--help获取。注意option是区分大小写
-q:静默下载,不打印任何信息
[root@localhost /]# wget -q  http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

-b:后台下载:当下载文件较大时,为了避免阻塞,可以使用-b在后台下载。 后台下载会在当前目录下创建一个wget-log文件存储输出信息。
[root@localhost opt]# wget -b /opt/zk-3.4.tar.gz http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
继续在后台运行,pid 为 8430。
将把输出写入至 “wget-log”。
[root@localhost opt]# ll
总用量 1988
-rw-r--r--. 1 root root   1955 12月 20 18:40 wget-log
-rw-r--r--. 1 root root 989651 12月 20 18:40 zookeeper-3.4.10.tar.gz
下载过程中通过tail -f wget-log可查看进度

-O:指定下载位置及文件名
[root@localhost /]# wget -q -O /opt/zk-3.4.10.tar.gz http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

-c:断点续传,文件已下完的情况下会忽略此操作,避免重复下载
[root@localhost opt]# wget -q -c -O /opt/zk-3.4.10.tar.gz http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

-i:批量下载,批量下载需要先把下载URL保存到一份文件中。如果需要为每个下载文件都定义别名,需要用Shell脚本来实现。-O只能指定一个文件名,会把所有文件内容都写入到一个文件里
[root@localhost opt]# cat downfile.txt
http://www.baidu.com
http://www.csdn.net
[root@localhost opt]#  wget -q -i downfile.txt
[root@localhost opt]# ll
total 34452
-rw-r--r--. 1 root root        0 Dec 19 23:31 ]
-rw-r--r--. 1 root root       41 Dec 19 23:37 downfile.txt
-rw-r--r--. 1 root root     2381 Jan 23  2017 index.html
-rw-r--r--. 1 root root    46487 Dec 19 23:55 index.html.1
drwxr-xr-x. 2 root root        6 Mar 26  2015 rh
-rw-r--r--. 1 root root   175241 Dec 19 23:38 test.f
-rw-r--r--. 1 root root 35042811 Mar 29  2017 zk-3.4.10.tar.gz

-r:递归下载,这个命令会递归下载服务器上所有的目录和文件。可以用来抓取网站数据,其它情况下基本不用
[root@localhost nav]# wget -r www.csdn.net
-l:与-r的递归抓取不同,-l可以指定抓取层级。

--limit-rate:限速下载(默认情况下wget使用全部可用带宽来下载),这里单位k、m等不区分大小写
[root@localhost opt]# wget --limit-rate=1k -O db_index.html http://www.baidu.com

-Q:限制文件大小,-Q需要配合-i使用在多文件下载中才生效,对于单文件下载不起作用。
[root@localhost opt]# wget -Q 10k -i md.txt

--spider:下载前测试连接是否可用
[root@localhost opt]# wget --spider www.baidu.com
开启 Spider 模式。检查是否存在远程文件。
--2018-12-20 18:47:53--  http://www.baidu.com/
正在解析主机 www.baidu.com (www.baidu.com)... 61.135.169.125, 61.135.169.121
正在连接 www.baidu.com (www.baidu.com)|61.135.169.125|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:277 [text/html]
存在远程文件且该文件可能含有更深层的链接,
但不能进行递归操作 -- 无法获取。

----tries:连接或下载失败时的重试次数(默认情况下wget重试20次),比如可用来和--spider联合使用,指定重试次数。
[root@localhost opt]# wget --spider --tries 3 www.abc.com

关于其它命令参考wget --help

[root@localhost opt]# wet --help
-bash: wet: 未找到命令
[root@localhost opt]# wget --help
GNU Wget 1.14,非交互式的网络文件下载工具。
用法: wget [选项]... [URL]...

长选项所必须的参数在使用短选项时也是必须的。

启动:
  -V,  --version           显示 Wget 的版本信息并退出。
  -h,  --help              打印此帮助。
  -b,  --background        启动后转入后台。
  -e,  --execute=COMMAND   运行一个“.wgetrc”风格的命令。

日志和输入文件:
  -o,  --output-file=FILE    将日志信息写入 FILE。
  -a,  --append-output=FILE  将信息添加至 FILE。
  -d,  --debug               打印大量调试信息。
  -q,  --quiet               安静模式 (无信息输出)。
  -v,  --verbose             详尽的输出 (此为默认值)。
  -nv, --no-verbose          关闭详尽输出,但不进入安静模式。
       --report-speed=TYPE   Output bandwidth as TYPE.  TYPE can be bits.
  -i,  --input-file=FILE     下载本地或外部 FILE 中的 URLs。
  -F,  --force-html          把输入文件当成 HTML 文件。
  -B,  --base=URL            解析与 URL 相关的
                             HTML 输入文件 (由 -i -F 选项指定)。
       --config=FILE         Specify config file to use.

下载:
  -t,  --tries=NUMBER            设置重试次数为 NUMBER (0 代表无限制)。
       --retry-connrefused       即使拒绝连接也是重试。
  -O,  --output-document=FILE    将文档写入 FILE。
  -nc, --no-clobber              skip downloads that would download to
                                 existing files (overwriting them).
  -c,  --continue                断点续传下载文件。
       --progress=TYPE           选择进度条类型。
  -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*WAIT...1.5*WAIT 秒。
       --no-proxy                禁止使用代理。
  -Q,  --quota=NUMBER            设置获取配额为 NUMBER 字节。
       --bind-address=ADDRESS    绑定至本地主机上的 ADDRESS (主机名或是 IP)。
       --limit-rate=RATE         限制下载速率为 RATE。
       --no-dns-cache            关闭 DNS 查寻缓存。
       --restrict-file-names=OS  限定文件名中的字符为 OS 允许的字符。
       --ignore-case             匹配文件/目录时忽略大小写。
  -4,  --inet4-only              仅连接至 IPv4 地址。
  -6,  --inet6-only              仅连接至 IPv6 地址。
       --prefer-family=FAMILY    首先连接至指定协议的地址
                                 FAMILY 为 IPv6,IPv4 或是 none。
       --user=USER               将 ftp 和 http 的用户名均设置为 USER。
       --password=PASS           将 ftp 和 http 的密码均设置为 PASS。
       --ask-password            提示输入密码。
       --no-iri                  关闭 IRI 支持。
       --local-encoding=ENC      IRI (国际化资源标识符) 使用 ENC 作为本地编码。
       --remote-encoding=ENC     使用 ENC 作为默认远程编码。
       --unlink                  remove file before clobber.

目录:
  -nd, --no-directories           不创建目录。
  -x,  --force-directories        强制创建目录。
  -nH, --no-host-directories      不要创建主目录。
       --protocol-directories     在目录中使用协议名称。
  -P,  --directory-prefix=PREFIX  以 PREFIX/... 保存文件
       --cut-dirs=NUMBER          忽略远程目录中 NUMBER 个目录层。

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’区域。
       --header=STRING         在头部插入 STRING。
       --max-redirect          每页所允许的最大重定向。
       --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 keep-alive (永久连接)。
       --no-cookies            不使用 cookies。
       --load-cookies=FILE     会话开始前从 FILE 中载入 cookies。
       --save-cookies=FILE     会话结束后保存 cookies 至 FILE。
       --keep-session-cookies  载入并保存会话 (非永久) cookies。
       --post-data=STRING      使用 POST 方式;把 STRING 作为数据发送。
       --post-file=FILE        使用 POST 方式;发送 FILE 内容。
       --content-disposition   当选中本地文件名时
                               允许 Content-Disposition 头部 (尚在实验)。
       --content-on-error      output the received content on server errors.
       --auth-no-challenge     发送不含服务器询问的首次等待
                               的基本 HTTP 验证信息。

HTTPS (SSL/TLS) 选项:
       --secure-protocol=PR     choose secure protocol, one of auto, SSLv2,
                                SSLv3, TLSv1, TLSv1_1 and 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 认证的哈希列表的目录。
       --random-file=FILE       带有生成 SSL PRNG 的随机数据的文件。
       --egd-file=FILE          用于命名带有随机数据的 EGD 套接字的文件。

FTP 选项:
       --ftp-user=USER         设置 ftp 用户名为 USER。
       --ftp-password=PASS     设置 ftp 密码为 PASS。
       --no-remove-listing     不要删除‘.listing’文件。
       --no-glob               不在 FTP 文件名中使用通配符展开。
       --no-passive-ftp        禁用“passive”传输模式。
       --preserve-permissions  保留远程文件的权限。
       --retr-symlinks         递归目录时,获取链接的文件 (而非目录)。

WARC options:
       --warc-file=FILENAME      save request/response data to a .warc.gz file.
       --warc-header=STRING      insert STRING into the warcinfo record.
       --warc-max-size=NUMBER    set maximum size of WARC files to NUMBER.
       --warc-cdx                write CDX index files.
       --warc-dedup=FILENAME     do not store records listed in this CDX file.
       --no-warc-compression     do not compress WARC files with GZIP.
       --no-warc-digests         do not calculate SHA1 digests.
       --no-warc-keep-log        do not store the log file in a WARC record.
       --warc-tempdir=DIRECTORY  location for temporary files created by the
                                 WARC writer.

递归下载:
  -r,  --recursive          指定递归下载。
  -l,  --level=NUMBER       最大递归深度 (inf 或 0 代表无限制,即全部下载)。
       --delete-after       下载完成后删除本地文件。
  -k,  --convert-links      让下载得到的 HTML 或 CSS 中的链接指向本地文件。
  --backups=N   before writing file X, rotate up to N backup files.
  -K,  --backup-converted   在转换文件 X 前先将它备份为 X.orig。
  -m,  --mirror             -N -r -l inf --no-remove-listing 的缩写形式。
  -p,  --page-requisites    下载所有用于显示 HTML 页面的图片之类的元素。
       --strict-comments    用严格方式 (SGML) 处理 HTML 注释。

递归接受/拒绝:
  -A,  --accept=LIST               逗号分隔的可接受的扩展名列表。
  -R,  --reject=LIST               逗号分隔的要拒绝的扩展名列表。
       --accept-regex=REGEX        regex matching accepted URLs.
       --reject-regex=REGEX        regex matching rejected URLs.
       --regex-type=TYPE           regex 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             use the name specified by the redirection
                                   url last component.
  -X,  --exclude-directories=LIST  排除目录的列表。
  -np, --no-parent                 不追溯至父目录。

 

<think>好的,我现在需要帮用户介绍一下wget命令。用户之前问过如何用wget下载文件时重命名,现在可能想深入了解wget多功能。首先,我需要确保覆盖wget的基本用法、常用参数、实际应用场景以及注意事项。 用户可能是开发者或者系统管理员,经常需要从命令行下载文件,尤其是在自动化脚本中。他们可能wget的一些高级功能感兴趣,比如递归下载、限速、断点续传等。同时,考虑到他们之前的问题,可能文件管理和重命名有特别需求,需要详细说明相关参数,比如-O选项。 接下来,我需要组织信息结构。从基本介绍开始,然后分点讲解参数,每个参数给出示例,这样用户容易理解。然后列举常见应用场景,帮助用户将命令与实际使用结合起来。注意事项部分要提醒用户可能遇到的覆盖文件、法律问题等,这样全面。 还要注意用户提到的之前的问题,所以在参数部分要强调-O的使用,可能还需要提到其他相关参数如-N、-nc,这些和文件命名及下载控制有关。另外,用户可能需要知道如何后台运行、如何模拟浏览器,这些在爬取数据时很有用。 需要检查是否有遗漏的重要参数,比如限速、重试次数、日志记录等。同时,确保示例准确,比如递归下载整个网站可能需要谨慎,避免侵犯版权,所以注意事项里要提到法律问题。 最后,总结部分要简明扼要,突出wget的优势,让用户明确它的适用场景。确保使用中文,避免技术术语过于晦涩,保持口语化但专业。可能还需要校对格式,确保代码块正确,参数用反引号标出,整体结构清晰易读。</think>以下是对 `wget` 命令的详细介绍,内容涵盖基本用法、常用参数、典型场景和注意事项: --- ### **1. 基本介绍** `wget` 是 Linux/Unix 系统中基于命令行的非交互式文件下载工具,支持 HTTP、HTTPS 和 FTP 协议。其特点是: - **无需用户干预**:可后台运行或通过脚本自动化 - **断点续传**:网络中断后可从断开处继续下载 - **递归下载**:支持批量抓取网页或目录内容 --- ### **2. 常用参数** | 参数 | 功能描述 | 示例 | |------|----------|------| | `-O <文件名>` | 指定下载文件的保存名称 | `wget -O data.zip http://example.com/file` | | `-c` | 断点续传(恢复未完成的下载) | `wget -c http://example.com/large.iso` | | `-r` | 递归下载整个网站/目录 | `wget -r http://example.com/` | | `-np` | 禁止递归到父目录(配合 `-r` 使用) | `wget -r -np http://example.com/subdir/` | | `-nd` | 不保留远程目录结构(所有文件保存到当前目录) | `wget -r -nd http://example.com/files/` | | `-P <目录>` | 指定文件保存路径 | `wget -P /home/user/downloads/ http://example.com/file` | | `-q` | 静默模式(不显示下载进度) | `wget -q http://example.com/background-file` | | `-i <文件>` | 从文件读取多个 URL 批量下载 | `wget -i url_list.txt` | | `--limit-rate=200k` | 限制下载速度(避免占用带宽) | `wget --limit-rate=200k http://example.com/large.mp4` | | `--user-agent="..."` | 伪装浏览器 User-Agent | `wget --user-agent="Mozilla/5.0" http://example.com` | --- ### **3. 典型应用场景** #### **场景 1:下载单个文件** ```bash wget http://example.com/images/photo.jpg ``` #### **场景 2:镜像整站(备份网站)** ```bash wget -mk -np http://example.com/ ``` - `-m`:镜像模式(等效于 `-r -N -l inf`) - `-k`:转换绝对链接为本地相对链接 #### **场景 3:批量下载指定类型文件** ```bash wget -r -A.pdf http://example.com/documents/ ``` - `-A.pdf`:仅下载 PDF 文件 - `-R.jpg`:排除 JPG 文件 #### **场景 4:后台下载** ```bash wget -b -o download.log http://example.com/large-file.iso ``` - `-b`:后台运行 - `-o`:将输出写入日志文件 --- ### **4. 注意事项** 1. **覆盖文件风险**: 默认会覆盖同名文件,建议添加 `-nc`(不重复下载)或 `-N`(仅下载新版本)参数: ```bash wget -nc http://example.com/version.txt ``` 2. **证书验证问题**: 若 HTTPS 站点证书不受信任,可添加 `--no-check-certificate`(需谨慎使用): ```bash wget --no-check-certificate https://untrusted-site.com/file ``` 3. **递归下载深度控制**: 通过 `-l` 参数限制递归层级,避免无限下载: ```bash wget -r -l 2 http://example.com/ # 仅下载两层链接 ``` 4. **法律合规性**: 禁止未经授权下载受版权保护的内容或整站爬取敏感数据。 --- ### **5. 总结** `wget` 是服务器环境下的核心下载工具,尤其适合: - 自动化脚本中的文件获取 - 无图形界面环境的资源下载 - 大规模数据抓取与备份 通过灵活组合参数,可实现从简单下载到复杂批量任务的完整解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值