Linux “wget”命令详解

田劭辉 2024-08-05 08:37:01 阅读 79

Linux中的<code>wget命令是一个非常强大的工具,用于从网络上下载文件。它支持HTTP、HTTPS和FTP协议,能够在断网或者是限速的情况下重启下载。wget命令是命令行下的非交互式下载器,这意味着它可以在后台运行,而不干扰当前的进程,并且支持在下载过程中退出并在需要时继续下载。

wget命令的一些基本用法:

基本下载:最简单的使用wget下载文件的方法是输入wget后跟上要下载的文件的URL。例如:

wget http://example.com/file.iso断点续传:如果下载过程中断,可以使用-c选项重新开始下载,并从之前停止的地方继续:

wget -c http://example.com/file.iso下载整个网站wget可以递归地下载网站上的所有文件、目录和子目录。这通过-r(递归)选项实现:

wget -r http://example.com限制下载速度:为了防止wget使用过多的带宽,可以使用--limit-rate选项来限制下载速度。例如,限制速度为100k/s:

wget --limit-rate=100k http://example.com/file.iso下载到指定目录:使用-P选项,可以指定下载文件的保存目录:

wget -P /path/to/directory http://example.com/file.iso后台下载:使用-b选项,wget会在后台进行下载:

wget -b http://example.com/file.iso下载多个文件:可以使用-i选项配合一个文件列表来下载多个文件。该文件中应包含一个URL列表:

wget -ifiles.txt模拟用户代理:使用-U选项,wget可以模拟不同的浏览器(用户代理):

wget -U Mozilla http://example.com保存下载日志:使用-o选项可以将日志保存到指定文件:

wget -o download.loghttp://example.com/file.iso


wget命令 -P 和 -O的区别:

wget 命令中的 -P 和 -O 选项都与指定下载文件的位置有关,但它们的作用和用法有显著的不同:

-P 选项(--directory-prefix)

用途:-P 选项用于指定下载文件的保存目录。当你使用这个选项时,wget 会将下载的文件保存到指定的目录中。示例:如果你执行 wget -P /path/to/directory http://example.com/file.iso,那么 file.iso 将被保存在 /path/to/directory 目录中。

-O 选项(--output-document)

用途:-O 选项用于指定下载文件的确切名称和位置。它不仅指定了文件保存的目录,还指定了文件的名称。如果用 -O 指定了文件名,无论URL中的文件名是什么,下载的文件都将保存为该指定的文件名。示例:使用 wget -O /path/to/directory/filename.html http://example.com/file时,无论原始文件名是什么,下载的文件都将保存为 /path/to/directory/filename.html

总的来说,-P 用于指定目录,保留原始文件名,而 -O 用于指定完整的文件路径,包括文件名,通常用于下载单个文件时重命名该文件。如果同时使用这两个选项,-O 的设置会覆盖 -P的效果。


wget命令各种选项和参数详细用法说明:

启动选项

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

日志和输入文件

-o, --output-file=FILE: 将日志消息记录到指定文件。-a, --append-output=FILE: 将消息追加到指定文件。-d, --debug: 打印大量调试信息。-q, --quiet: 安静模式,不输出信息。-v, --verbose: 冗长模式,这是默认设置。-nv, --no-verbose: 关闭冗长模式,但不完全静音。--report-speed=TYPE: 按TYPE报告带宽,TYPE可以是bits。-i, --input-file=FILE: 从本地或外部文件中找到的URL下载。-F, --force-html: 将输入文件视为HTML。-B, --base=URL: 解析HTML输入文件链接(-i -F)相对于URL。--config=FILE: 指定使用的配置文件。

下载

-t, --tries=NUMBER: 设置重试次数为NUMBER(0为无限)。--retry-connrefused: 即使连接被拒绝也重试。-O, --output-document=FILE: 将文档写入FILE。-nc, --no-clobber: 跳过下载到已存在的文件(覆盖它们)。-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.5WAIT...1.5WAIT秒。--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: 首先连接到指定家族的地址,IPv6、IPv4或none。--user=USER: 设置ftp和http的用户为USER。--password=PASS: 设置ftp和http的密码为PASS。--ask-password: 提示输入密码。--no-iri: 关闭IRI支持。--local-encoding=ENC: 使用ENC作为IRIs的本地编码。--remote-encoding=ENC: 使用ENC作为默认的远程编码。--unlink: 覆盖前删除文件。

目录

-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保持活动(持久连接)。--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: 在服务器错误时输出接收到的内容。--auth-no-challenge: 在服务器的挑战之前发送基本HTTP认证信息。

HTTPS(SSL/TLS)选项

--secure-protocol=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的哈希列表的目录。--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: 禁用“被动”传输模式。--preserve-permissions: 保留远程文件权限。--retr-symlinks: 递归时获取链接到的文件(而非目录)。

WARC选项

--warc-file=FILENAME: 将请求/响应数据保存到.warc.gz文件。--warc-header=STRING: 将STRING插入到warcinfo记录。--warc-max-size=NUMBER: 设置WARC文件的最大大小为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写入器创建的临时文件的位置。

递归下载

-r, --recursive: 指定递归下载。-l, --level=NUMBER: 最大递归深度(inf或0表示无限)。--delete-after: 下载后删除本地文件。-k, --convert-links: 使下载的HTML或CSS中的链接指向本地文件。--backups=N: 写入文件X之前,旋转最多N个备份文件。-K, --backup-converted: 转换文件X之前,备份为X.orig。-m, --mirror: -N -r -l inf --no-remove-listing的快捷方式。-p, --page-requisites: 获取显示HTML页面所需的所有图像等。--strict-comments: 开启HTML注释的严格(SGML)处理。

递归接受/拒绝

-A, --accept=LIST: 接受扩展名的逗号分隔列表。-R, --reject=LIST: 拒绝扩展名的逗号分隔列表。--accept-regex=REGEX: 接受URL的正则表达式匹配。--reject-regex=REGEX: 拒绝URL的正则表达式匹配。--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: 使用重定向URL最后组件指定的名称。-X, --exclude-directories=LIST: 排除目录的列表。-np, --no-parent: 不升级到父目录。

这些选项提供了对下载过程的深入控制,使得wget可以在各种不同的网络环境和需求下高效工作。



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。