🔍 Linux命令 wget完全指南(2025最新版)
wget是Linux系统中最强大的非交互式下载工具,支持HTTP/HTTPS/FTP协议,尤其擅长处理大文件、镜像网站和自动化下载任务。以下是专业工程师必备的核心用法:
📦 一、基础下载操作
wget https://example.com/file.zip
wget -O backup.tar.gz https://site.com/data.tar
wget -c https://large-file.iso
🚀 二、高效下载技巧
1. 批量下载
wget -i url_list.txt
wget https://site.com/part{1..5}.zip
2. 限速控制
wget --limit-rate=500k https://example.com/video.mp4
3. 后台下载
wget -bq -o download.log https://example.com/large_file.bin
4. 递归下载(网站镜像)
wget --mirror --convert-links --page-requisites --no-parent https://example.com
| 参数 |
作用 |
--mirror |
开启镜像模式 |
--convert-links |
转换链接适配本地浏览 |
--page-requisites |
下载CSS/图片等页面依赖资源 |
--no-parent |
不下载父目录内容 |
🔐 三、安全认证场景
wget --user=admin --password=secret http://protected-site.com
wget --ftp-user=user --ftp-password=pass ftp://fileserver/data
wget --no-check-certificate https://self-signed-site.com
⚙️ 四、高级参数解析
| 参数组合 |
应用场景 |
-np -nH --cut-dirs=N |
精简目录结构 |
-r -A.jpg,.png |
仅下载指定类型文件 |
-r -R .tmp,.bak |
排除特定格式文件 |
-U "Mozilla/5.0" |
自定义User-Agent绕过反爬虫 |
-Q 5G |
设置最大下载配额 |
💡 五、实用场景示例
1. 定时更新数据文件
0 6 * * * wget -N https://data.org/daily.csv -O /storage/update.csv
2. 下载网站所有PDF文档
wget -r -l2 -nd -A.pdf https://docs.example.com
3. 灾备恢复(断点续传实战)
wget -c --tries=0 --timeout=30 https://backup-server/db.dump
⚠️ 六、避坑指南
- 递归下载深度控制
-r默认递归5层,超大型网站需用 -l限制层数:
wget -r -l3 https://large-site.com
- 防止被封禁IP
wget --wait=5 --random-wait https://sensitive-site.com
- 文件名乱码处理
wget --restrict-file-names=unix https://site-with-中文.com
- 大文件校验完整性
wget https://file.iso && sha256sum file.iso | grep [预期哈希值]
📊 七、性能优化参数
| 参数 |
优化效果 |
-4/-6 |
强制使用IPv4/IPv6 |
--dns-timeout=10 |
DNS解析超时10秒 |
--connect-timeout=15 |
连接超时15秒 |
--read-timeout=60 |
读取数据超时60秒 |
-T 180 |
全局超时3分钟 |
✅ 八、替代方案对比
| 场景 |
wget优势 |
其他工具 |
| 递归下载网站 |
成熟的目录结构保持能力 |
curl较弱 |
| 大文件断点续传 |
协议支持完善 |
aria2更复杂 |
| 自动化脚本 |
参数标准化,兼容性强 |
python-requests需编程 |
🔚 总结
掌握 wget核心操作优先级:
- 基础下载:
wget [URL] +