马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
一、三种命令行下载工具怎么选
Linux 下通过链接拿文件的方式有很多:图形界面的浏览器、文件管理器,以及命令行里的 wget、curl、axel 等。跑脚本、连服务器、无图形界面环境里,命令行工具才是主力。三个各有定位:
- wget:非交互式的下载器,支持 HTTP、HTTPS、FTP,稳定、断线可续传,一条命令把文件拉下来就完事。
- curl:严格说是数据传输工具,协议支持最广(HTTP、HTTPS、FTP 等),灵活度高,适合要指定输出文件名、加请求头、跟接口打交道的场景。
- axel:轻量下载加速器,支持 HTTP/HTTPS/FTP,能从多个来源并行拉取同一文件,大文件下速度优势明显。
二、wget 的基本用法
最简单的一条就够用:
wget https://example.com/file.zip
几个常用的补充参数:
-c:断点续传,网络断了再从断点接着下,大文件强烈建议带上。
-O 文件名:指定保存的文件名(大写 O)。
-b:后台下载,适合大文件,日志 会写到当前目录的 wget-log。
-i 列表文件:批量下载,列表里一行一个 URL。
三、curl 的两种命名方式
curl 下文件最容易踩的坑是"文件被塞进了终端"。因为 curl 默认把响应体打到标准输出,除非你显式指定输出。
3.1 自动用 URL 里的文件名
curl -O https://example.com/file.zip
注意这是大写字母 O,作用是"按远程文件的名字保存"。这条对应场景:远程叫 report.zip,本地也想叫 report.zip。
3.2 自己指定文件名
curl -o myfile.zip https://example.com/file.zip
这是小写字母 o,后面跟你想存成的名字。重定向、改名、或者远程链接没有可读的文件名时,用这个才不会出问题。
省略 -O 和 -o 的结果就是:内容直接刷在终端里,看起来像"下载失败",其实它下载完了,只是输出到了 stdout。这个坑新手几乎每个人都踩过一次。
四、axel 给大文件加速
axel 是个多线程下载器,同一文件开多个连接并行拉,带宽跑得满。装一下:
4.1 安装
Debian/Ubuntu 及其衍生版:
sudo apt-get update
sudo apt-get install axel
Fedora 系:
sudo dnf install axel
4.2 使用
axel https://example.com/file.zip
指定文件名用 -o:
axel -o myfile.zip https://example.com/file.zip
指定连接数用 -n,默认通常是 4:
axel -n 8 https://example.com/file.zip
五、三者对比与选型建议
| 工具 | 特点 | 典型场景 |
| wget | 非交互式、可后台、可批量、可续传 | 脚本里下载、要跑背景任务、要批量拉 |
| curl | 协议最全、参数最灵活、可控输出 | 要走接口、要加 Header、要精确控制文件名 |
| axel | 多连接并行、速度最快 | 大文件、带宽富余、对速度敏感 |
日常经验:跑自动化脚本优先 wget(稳、能后台、能续传);要调接口、看响应头、处理重定向用 curl;纯粹嫌慢就装个 axel。
六、几个容易犯的错
- curl 少了
-o,文件打印到屏幕上"看起来像没下载成功"。
- wget
-o 写成了小写——wget 里那个是大写 -O,小写是"写日志 到文件",很容易混。
- HTTPS 站点证书不被信任时报证书错误,这时别急着加
-k 跳过校验就完事,先确认是不是中间人劫持,确认可信再装根证书。
- 下载完不校验大小/checksum,结果拿到一个截断的文件还在正常使用,问题会拖到很后面才暴露。
七、小结
记住三句话就够了:wget 求稳、curl 求灵活、axel 求快。写脚本默认 wget,需要控制输出文件名和加请求参数用 curl,大文件提速上 axel。curl 那边一定要分清 -O(按远程名存)和 -o(按指定名存),少写一个字母就变成把整份内容刷到终端上。
qidao123.com企服评测-应用市场 编辑提示
|