Linux如何通过链接下载文件

[复制链接]
发表于 2026-10-6 11:01:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

一、三种命令行下载工具怎么选

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企服评测-应用市场 编辑提示

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表