wget 命令速查手册 | HTTP / FTP 文件下载全指南
🧩 一、wget 基本语法
wget [选项] [URL]
常见示例:
wget https://example.com/file.zip
wget ftp://user:password@ftp.example.com/data/file.txt
🟩 二、常用下载参数
参数 | 含义 | 示例 |
---|
-O <file> | 指定保存文件名 | wget -O mydata.zip https://xx.com/data.zip |
-P <dir> | 保存到指定目录 | wget -P /home/user/downloads https://xx.com/a.zip |
-c | 断点续传,继续下载未完成的文件 | wget -c https://xx.com/big.iso |
--timestamping | 仅当远程文件比本地新时才下载 | wget --timestamping https://xx.com/data.csv |
--tries=<n> | 设置下载失败重试次数 | wget --tries=5 https://xx.com |
--timeout=<sec> | 整体超时时间 | wget --timeout=30 https://xx.com |
--limit-rate=<rate> | 限制下载速度 (200k , 1m ) | wget --limit-rate=500k https://xx.com/file.iso |
--wait=<sec> | 两次请求间隔时间 | wget --wait=2 -r https://xx.com/ |
🟨 三、输出与日志控制
参数 | 含义 | 示例 |
---|
-q | 静默模式,不输出下载信息 | wget -q https://xx.com/file.zip |
-nv | 非详细模式(non-verbose) | wget -nv https://xx.com |
-v | 默认详细模式 | wget -v https://xx.com |
-o <logfile> | 将输出写入日志文件 | wget -o log.txt https://xx.com |
-a <logfile> | 追加日志而不是覆盖 | wget -a history.log https://xx.com |
🟧 四、HTTP / HTTPS 专用参数
参数 | 含义 | 示例 |
---|
--header="Key: Value" | 添加自定义请求头 | wget --header="User-Agent: MyClient" https://xx.com |
--user-agent="<string>" | 修改 User-Agent 标识 | wget --user-agent="Mozilla/5.0" |
--referer=<URL> | 设置 Referer | wget --referer=https://google.com https://xx.com |
--no-check-certificate | 跳过 SSL 证书验证 | wget --no-check-certificate https://insecure.xx.com |
--http-user=<user> / --http-password=<pass> | HTTP 基本认证 | wget --http-user=admin --http-password=123 https://xx.com/private |
--post-data="key=value&..." | POST 请求方式下载 | wget --post-data="id=1&type=csv" https://xx.com/export |
🟪 五、FTP 专用参数
参数 | 含义 | 示例 |
---|
--ftp-user=<user> | 指定 FTP 用户名 | wget --ftp-user=abc ftp://ftp.xx.com/file.txt |
--ftp-password=<pass> | 指定 FTP 密码 | wget --ftp-password=123 ftp://ftp.xx.com/file.txt |
--no-remove-listing | 保留 .listing 文件 | wget -r ftp://ftp.xx.com/pub/ |
--retr-symlinks | 下载符号链接目标而非链接本身 | wget --retr-symlinks ftp://ftp.xx.com/data/ |
🟫 六、递归与镜像下载
参数 | 含义 | 示例 |
---|
-r | 递归下载目录或网站 | wget -r https://xx.com/data/ |
-l <depth> | 设置递归深度 | wget -r -l 2 https://xx.com/docs/ |
-np | 不上升到父目录(no-parent) | wget -r -np https://xx.com/data/2025/ |
-m | 镜像网站(等价于 -r -N -l inf -np ) | wget -m https://xx.com/ |
--convert-links | 下载后转换本地链接,便于离线浏览 | wget -m --convert-links https://xx.com/ |
--accept "*.zip" | 只下载指定类型文件 | wget -r --accept "*.zip,*.tar.gz" |
--reject "*.jpg" | 排除指定类型文件 | wget -r --reject "*.jpg,*.png" |
🟦 七、代理与连接控制
参数 | 含义 | 示例 |
---|
--proxy-user=<user> / --proxy-password=<pass> | 代理服务器认证 | wget --proxy-user=u --proxy-password=p https://xx.com |
--no-proxy | 禁用代理 | wget --no-proxy https://xx.com |
--dns-timeout=<sec> | DNS 解析超时 | wget --dns-timeout=10 https://xx.com |
--connect-timeout=<sec> | 连接超时 | wget --connect-timeout=15 https://xx.com |
--read-timeout=<sec> | 读取超时 | wget --read-timeout=60 https://xx.com |
⚙️ 八、常用组合场景示例
1️⃣ 断点续传 + 限速 + 日志输出
wget -c --limit-rate=500k -a log.txt https://example.com/large.iso
2️⃣ 递归下载 FTP 目录
wget -r --ftp-user=abc --ftp-password=123 ftp://ftp.example.com/pub/data/
3️⃣ 镜像整个网站(离线浏览)
wget -m --convert-links --no-check-certificate https://example.com/
4️⃣ 定期同步远程文件(仅更新)
wget --timestamping -P /data https://example.com/daily/report.csv
5️⃣ 从服务器下载 POST 结果
wget --post-data="name=test&id=123" -O result.json https://api.example.com/getData
🧠 九、实用技巧汇总
场景 | 推荐命令 |
---|
下载大文件,支持断点续传 | wget -c <url> |
限制带宽防止占满网络 | wget --limit-rate=1m <url> |
保存下载日志方便排查 | wget -a download.log <url> |
自动跳过已存在文件 | wget --timestamping <url> |
批量下载多个文件 | wget -i list.txt (list.txt 存放 URL 列表) |
忽略 SSL 证书错误 | wget --no-check-certificate <url> |
只下载特定格式文件 | wget -r --accept "*.zip" |
指定输出目录 | wget -P /path/to/save <url> |
🧩 十、参考资料
- GNU Wget 官方文档:https://www.gnu.org/software/wget/
- Linux man 手册:
man wget
💬 总结:
wget
是一款极其强大的命令行下载工具,支持 HTTP / HTTPS / FTP 协议、断点续传、镜像下载和多种自定义请求头设置。
掌握本文中的参数组合后,你几乎可以应对所有远程下载场景。