wget 命令速查手册 | HTTP / FTP 文件下载全指南

wget 命令速查手册 | HTTP / FTP 文件下载全指南

🧩 一、wget 基本语法

bash 复制代码
wget [选项] [URL]

常见示例:

bash 复制代码
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️⃣ 断点续传 + 限速 + 日志输出

bash 复制代码
wget -c --limit-rate=500k -a log.txt https://example.com/large.iso

2️⃣ 递归下载 FTP 目录

bash 复制代码
wget -r --ftp-user=abc --ftp-password=123 ftp://ftp.example.com/pub/data/

3️⃣ 镜像整个网站(离线浏览)

bash 复制代码
wget -m --convert-links --no-check-certificate https://example.com/

4️⃣ 定期同步远程文件(仅更新)

bash 复制代码
wget --timestamping -P /data https://example.com/daily/report.csv

5️⃣ 从服务器下载 POST 结果

bash 复制代码
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>

🧩 十、参考资料


💬 总结:
wget 是一款极其强大的命令行下载工具,支持 HTTP / HTTPS / FTP 协议、断点续传、镜像下载和多种自定义请求头设置。

掌握本文中的参数组合后,你几乎可以应对所有远程下载场景。

相关推荐
Elastic 中国社区官方博客2 小时前
在 Elasticsearch 中使用 Mistral Chat completions 进行上下文工程
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
编程爱好者熊浪3 小时前
两次连接池泄露的BUG
java·数据库
cr7xin4 小时前
缓存三大问题及解决方案
redis·后端·缓存
TDengine (老段)5 小时前
TDengine 字符串函数 CHAR 用户手册
java·大数据·数据库·物联网·时序数据库·tdengine·涛思数据
qq7422349845 小时前
Python操作数据库之pyodbc
开发语言·数据库·python
姚远Oracle ACE6 小时前
Oracle 如何计算 AWR 报告中的 Sessions 数量
数据库·oracle
Dxy12393102166 小时前
MySQL的SUBSTRING函数详解与应用
数据库·mysql
码力引擎6 小时前
【零基础学MySQL】第十二章:DCL详解
数据库·mysql·1024程序员节
杨云龙UP6 小时前
【MySQL迁移】MySQL数据库迁移实战(利用mysqldump从Windows 5.7迁至Linux 8.0)
linux·运维·数据库·mysql·mssql
l1t6 小时前
利用DeepSeek辅助修改luadbi-duckdb读取DuckDB decimal数据类型
c语言·数据库·单元测试·lua·duckdb