wget 是一个非常强大的命令行工具,用于从网络上下载文件。它支持 HTTP、HTTPS 和 FTP 协议,并且可以通过代理下载。wget 是一个非交互式下载器,这意味着它可以在用户退出后继续运行。
基本语法
wget [选项] [URL]
常用选项
-
下载文件
wget http://example.com/file.zip这将下载
file.zip文件到当前目录。 -
指定输出文件名
wget -O newfile.zip http://example.com/file.zip使用
-O选项可以指定下载文件的名称为newfile.zip。 -
断点续传
wget -c http://example.com/file.zip使用
-c选项可以在下载中断后继续下载。 -
后台下载
wget -b http://example.com/file.zip使用
-b选项可以在后台下载文件。下载日志会保存在wget-log文件中。 -
限制下载速度
wget --limit-rate=200k http://example.com/file.zip使用
--limit-rate选项可以限制下载速度为 200KB/s。 -
下载整个网站
wget --mirror -p --convert-links -P ./local http://example.com这个命令会镜像整个网站到本地目录
./local,并且会将所有链接转换为本地链接。--mirror:启用镜像选项,相当于-r -N -l inf --no-remove-listing。-p:下载页面所需的所有文件(例如图片、样式表)。--convert-links:将下载后的链接转换为本地链接。-P:指定下载目录。
-
下载 FTP 目录
wget -r ftp://example.com/pub/使用
-r选项可以递归下载 FTP 目录。 -
使用代理
wget -e use_proxy=yes -e http_proxy=http://proxy.example.com:8080 http://example.com/file.zip使用
-e选项设置代理。 -
HTTP 用户认证
wget --user=username --password=password http://example.com/file.zip使用
--user和--password选项可以进行 HTTP 基本认证。 -
下载多个文件
wget -i filelist.txt使用
-i选项可以从文件filelist.txt中读取 URL 列表并下载。
高级用法
-
递归下载
wget -r -l 5 http://example.com使用
-r选项可以递归下载,-l选项可以指定递归深度。 -
只下载特定类型文件
wget -r -A "*.jpg,*.png" http://example.com使用
-A选项可以只下载特定类型的文件,例如图片文件。 -
跳过特定类型文件
wget -r -R "*.gif" http://example.com使用
-R选项可以跳过特定类型的文件。 -
下载时保持服务器目录结构
wget -x http://example.com/dir/file.zip使用
-x选项可以在本地创建与服务器相同的目录结构。 -
自动重试
wget --tries=10 http://example.com/file.zip使用
--tries选项可以指定重试次数。
示例
-
下载文件并显示进度条
wget --progress=bar http://example.com/file.zip -
下载文件并忽略证书错误
wget --no-check-certificate https://example.com/file.zip -
使用 POST 请求下载文件
wget --post-data="name=value" http://example.com/form
总结
wget 是一个功能强大的下载工具,适用于各种下载需求。从简单的文件下载到复杂的网站镜像,wget 都能胜任。通过灵活的选项组合,你可以根据具体需求定制下载行为。希望这些信息能帮助你更好地使用 wget!如果你有任何其他问题,欢迎继续提问。
基本选项
-V, --version:显示wget的版本信息。-h, --help:显示帮助信息。-b, --background:在后台运行wget。-e, --execute=COMMAND:执行.wgetrc文件中的命令。
下载选项
-t, --tries=NUMBER:设置重试次数(默认值为 20)。--retry-connrefused:如果连接被拒绝,则重试。-O, --output-document=FILE:将文档写入到FILE。-nc, --no-clobber:跳过已存在的文件不覆盖。-c, --continue:继续下载已部分下载的文件。--progress=TYPE:设置进度条类型(bar、dot等)。-N, --timestamping:只下载比本地文件新的文件。--no-use-server-timestamps:不使用服务器时间戳。-S, --server-response:打印服务器响应。--spider:不下载文件,只检查文件是否存在。-T, --timeout=SECONDS:设置超时时间。--dns-timeout=SECONDS:设置 DNS 查询超时时间。--connect-timeout=SECONDS:设置连接超时时间。--read-timeout=SECONDS:设置读取超时时间。--limit-rate=RATE:限制下载速度。--no-dns-cache:不缓存 DNS 查询结果。-4, --inet4-only:只使用 IPv4。-6, --inet6-only:只使用 IPv6。
目录选项
-nd, --no-directories:不创建目录。-x, --force-directories:强制创建目录。-nH, --no-host-directories:不创建主机目录。--protocol-directories:使用协议名称作为目录。-P, --directory-prefix=PREFIX:将文件保存到PREFIX目录。--cut-dirs=NUMBER:忽略远程目录层次。
HTTP 选项
--http-user=USER:HTTP 用户名。--http-password=PASSWORD:HTTP 密码。--no-cache:不使用服务器缓存。--default-page=NAME:更改默认页面名称。-E, --adjust-extension:根据 MIME 类型调整文件扩展名。--ignore-length:忽略Content-Length标头。--header=STRING:添加 HTTP 请求头。--max-redirect=NUMBER:设置最大重定向次数。--proxy-user=USER:代理用户名。--proxy-password=PASSWORD:代理密码。--referer=URL:设置Referer头。--save-headers:保存 HTTP 头到文件。-U, --user-agent=AGENT:设置用户代理。--no-http-keep-alive:关闭 HTTP 持久连接。--no-cookies:不使用 cookies。--load-cookies=FILE:从文件加载 cookies。--save-cookies=FILE:将 cookies 保存到文件。--keep-session-cookies:保存会话 cookies。--post-data=STRING:使用 POST 方法发送数据。--post-file=FILE:使用 POST 方法发送文件。--method=STRING:使用指定的 HTTP 方法。--body-data=STRING:发送指定的请求体数据。--body-file=FILE:发送指定的请求体文件。--content-disposition:启用Content-Disposition处理。--auth-no-challenge:发送基本认证信息而不等待服务器的挑战。
FTP 选项
--ftp-user=USER:FTP 用户名。--ftp-password=PASSWORD:FTP 密码。--no-remove-listing:不删除.listing文件。--no-glob:不进行文件名扩展。--no-passive-ftp:禁用 FTP 被动模式。--retr-symlinks:下载符号链接的目标文件。
递归下载选项
-r, --recursive:递归下载。-l, --level=NUMBER:设置递归下载的最大深度。--delete-after:下载后删除文件。-k, --convert-links:将链接转换为本地链接。-K, --backup-converted:备份原始文件。-m, --mirror:镜像网站(等同于-r -N -l inf --no-remove-listing)。-p, --page-requisites:下载页面所需的所有文件。-A, --accept=LIST:只接受指定的文件类型。-R, --reject=LIST:拒绝指定的文件类型。-D, --domains=LIST:只下载指定域名的文件。--exclude-domains=LIST:排除指定域名的文件。--follow-ftp:跟随 FTP 链接。--follow-tags=LIST:跟随指定的 HTML 标签。--ignore-tags=LIST:忽略指定的 HTML 标签。-H, --span-hosts:下载时跟随外部链接。-L, --relative:仅跟随相对链接。-I, --include-directories=LIST:只包含指定的目录。-X, --exclude-directories=LIST:排除指定的目录。-np, --no-parent:不追溯到父目录。
文件选项
-nc, --no-clobber:不覆盖已存在的文件。-c, --continue:继续下载已部分下载的文件。--progress=TYPE:设置进度条类型(bar、dot等)。-N, --timestamping:只下载比本地文件新的文件。--no-use-server-timestamps:不使用服务器时间戳。-S, --server-response:打印服务器响应。--spider:不下载文件,只检查文件是否存在。-T, --timeout=SECONDS:设置超时时间。--dns-timeout=SECONDS:设置 DNS 查询超时时间。--connect-timeout=SECONDS:设置连接超时时间。--read-timeout=SECONDS:设置读取超时时间。--limit-rate=RATE:限制下载速度。--no-dns-cache:不缓存 DNS 查询结果。-4, --inet4-only:只使用 IPv4。-6, --inet6-only:只使用 IPv6。
其他选项
--bind-address=ADDRESS:绑定到指定地址。--user=USER:设置用户名。--password=PASSWORD:设置密码。--wait=SECONDS:设置下载之间的等待时间。--random-wait:随机等待时间。--no-proxy:不使用代理。--quota=NUMBER:设置下载配额。--no-directories:不创建目录。--cut-dirs=NUMBER:忽略远程目录层次。
这些选项可以组合使用,以满足各种下载需求。wget 是一个非常灵活和强大的工具,熟悉这些选项可以大大提高你的工作效率。如果你有任何具体的需求或问题,随时告诉我!