网易首页 > 网易号 > 正文 申请入驻

Linux 文件打包与压缩实战:tar、gzip、bzip2、zip 一次讲清楚

0
分享至

在 Linux 环境里,文件打包和压缩是绕不开的基本功。

无论你是做网络安全、运维、开发,还是平时在服务器之间传文件,都会频繁遇到这些场景:

  • 备份日志和配置文件
  • 打包项目代码上传部署
  • 下载源码包后解压安装
  • 归档历史数据
  • 在 Linux 和 Windows 之间交换文件
  • 给压缩包加密码后再传输

很多人平时习惯把“打包”和“压缩”混着说,但它们其实不是一回事。
真正把概念分清楚后,再去看 tar、gZIP、bzip2、zip 这些命令,就会顺很多。

这篇文章从实际使用角度,把 Linux 里最常见的文件打包与压缩操作系统化地讲一遍。

一、先分清楚:打包不等于压缩

这是最容易被混淆的地方。

1. 什么是打包

打包的本质是:

把多个文件或目录合并成一个归档文件

注意,这里强调的是“合并”,不是“变小”。

你可以把它理解成收纳:

  • 原来桌上有很多零散文件
  • 现在把它们装进一个盒子
  • 文件数量从很多个,变成一个整体

在 Linux 中,最典型的打包工具就是:

tar

它能把一堆文件打成一个 .tar 包。

2. 什么是压缩

压缩的本质是:

通过算法减少文件体积

也就是说,重点是“变小”。

比如一个文本文件里有大量重复内容,压缩算法就有机会把重复部分用更短的方式编码,从而减少存储空间和传输体积。

3. 两者可以独立存在

很多人默认以为“压缩包 = 打包 + 压缩”,但实际并不绝对。

可以只打包,不压缩

例如:

  • 把一批日志归档成一个 .tar
  • 仅为了方便传输或管理
  • 不一定追求体积最小
可以只压缩,不打包

例如:

  • 对单个文件直接做 gzip 压缩
  • 文件变成 .gz
  • 但它并没有“合并多个文件”

所以要记住一句话:

打包解决的是“文件太多不好管理”,压缩解决的是“体积太大不好传输/存储”。
二、为什么压缩能让文件变小

从直觉上看,压缩这件事有点像“凭空把东西缩小了”,但它其实不是魔法,而是编码方式的变化。

举个最简单的例子。
如果一段数据是这样的:

a bb ccc dddd eeeee

从人的角度看,很明显里面有大量重复。
如果换一种表示方式,比如记成:

a1b2c3d4e5

那么表达同样信息时,占用长度就可能更短。

真实世界里的压缩算法当然比这个复杂得多,但思路本质类似:

  • 发现重复
  • 去掉冗余
  • 用更高效的编码方式表示原始内容
压缩率怎么看

常见计算方式是:

压缩后体积 / 压缩前体积

例如:

  • 原文件 100MB
  • 压缩后 60MB

那么压缩率就是:

60 / 100 = 60%

通常来说,压缩率越低,说明压缩效果越好。

三、为什么有些文件一压就小,有些几乎没变化

这个问题非常常见。

很多人第一次接触压缩时会发现:

  • 文本文件、日志、源码,压缩效果很好
  • 视频、音频、图片,再压一遍效果很差

原因也很简单:

很多媒体格式本身就已经被压缩过了。

比如:

  • 图片:JPEG、PNG、GIF
  • 音频:MP3、FLAC
  • 视频:MP4、AVI、RMVB

这些格式在设计时就已经考虑了压缩。
你再用通用压缩工具去压它,能省下来的空间自然不多。

所以别期待把一个已经压缩好的 MP4 再打包压缩一遍,还能缩小一大截。
通常不会。

四、压缩是“用时间换空间”

压缩这件事不是没有代价的。

它的本质可以概括成一句话:

用 CPU 和时间,换磁盘空间和传输成本。

也就是说:

  • 压缩时,要计算
  • 解压时,也要计算
  • 不是“白赚”的

所以压缩很适合这些场景:

  • 备份归档
  • 远程传输
  • 节省带宽
  • 降低存储占用

但如果文件要被高频随机访问,就不一定适合一直压着不用。

五、压缩技术其实到处都在用

很多人以为“压缩”就是桌面上那几个压缩包软件的事,其实远不止。

1. HTTP 传输中的压缩

浏览器访问网站时,服务器通常不会把原始文本直接一股脑发过来。
常见会使用:

  • gzip
  • deflate
  • br(Brotli)

浏览器通过请求头声明自己支持哪些压缩算法,服务器通过响应头告诉浏览器它用了哪一种。

常见头部比如:

Accept-Encoding: gzip, deflate, brContent-Encoding: gzip

这会显著减少网页文本、脚本、样式表的传输体积。

2. 即时通讯里的压缩

聊天软件传输图片、语音、视频时,通常也会自动压缩。

否则在早期移动网络环境下,体验会非常差。
你看到的“发送原图”这个选项,本质上就是告诉程序:这次别压缩。

六、Windows 和 Linux 常见压缩格式有哪些Windows 平台常见格式

最常见的三类是:

  • .zip
  • .RAR
  • .7Z

其中:

ZIP

  • 兼容性最好
  • 通用性最高
  • 各平台支持都比较友好
RAR
  • 压缩率不错
  • 但属于商业格式
  • 某些环境下依赖额外工具
7Z
  • 压缩比高
  • 工具生态也成熟
  • 但兼容性通常不如 ZIP 普适
Linux 平台常见格式

Linux 下常见的是:

  • .tar
  • .tar.gz / .tgz
  • .tar.bz2
  • .zip

这里要特别注意:

.tar

只是打包,未必压缩。

.tar.gz

表示:

  • 先用 tar 打包
  • 再用 gzip 压缩
.tar.bz2

表示:

  • 先用 tar 打包
  • 再用 bzip2 压缩
.zip

属于跨平台兼容较好的格式,Linux 和 Windows 都常见。

七、Linux 下最常用的打包工具:tar

tar 是 Linux 世界里最常见的归档工具之一。

它最初来自:

Tape Archive

早期是为了把数据归档到磁带这样的介质里。
虽然今天早就不只是干这个了,但名字保留了下来。

tar 最核心的几个选项

先记住最常用的一组:

  • -c:创建归档
  • -x:解包
  • -v:显示过程
  • -f:指定文件名
  • -z:配合 gzip
  • -j:配合 bzip2
  • -C:解压到指定目录
  • -t:查看归档内容

你会发现,平时最常见的其实就是那几种固定组合。

八、先看最基础的:只打包,不压缩

假设当前目录下有一个目录 test/,现在要把它打成一个归档文件:

tar -Cvf test.tar test/

含义分别是:

  • c:创建
  • v:显示详细过程
  • f:输出文件名是 test.tar

执行后会得到:

test.tar

这个文件已经把 test/ 目录整体打进去了,但体积不一定变小。

解包命令

要把它还原出来:

tar -xvf test.tar

这就是最原始的 tar 用法。

查看包内内容,不解压

如果你只想看看里面装了什么:

tar -tf test.tar

这个用法很实用。
尤其拿到陌生归档文件时,建议先看内容结构,再决定是否解压。

九、最常用的场景:tar + gzip

日常最常见的压缩格式之一就是:

.tar.gz

也常写成:

.tgz

两者本质上是同一类东西,只是后缀写法不同。

创建 .tar.gz

例如把 test/ 打包并压缩:

tar -zcvf test.tar.gz test/

这里比刚才多了一个:

  • z:表示使用 gzip 算法
解压 .tar.gz

tar -zxvf test.tar.gz

也是同样思路:

  • x:解包
  • z:gzip
  • v:显示过程
  • f:指定文件名
解压到指定目录

有时不希望它直接在当前目录释放,可以这样:

tar -zxvf test.tar.gz -C /tmp/demo

这里的 -C 很重要。
养成这个习惯,能避免把一堆文件直接解到当前目录,弄得很乱。

十、压缩率更高的选择:tar + bzip2

如果你想要更高压缩率,可以考虑 bzip2。

对应的格式通常是:

.tar.bz2
创建 .tar.bz2

tar -jcvf test.tar.bz2 test/

这里的关键选项是:

  • j:表示使用 bzip2
解压 .tar.bz2

tar -jxvf test.tar.bz2
gzip 和 bzip2 怎么选

一般经验可以概括成:

  • tar:只打包,体积最大
  • tar.gz:压缩率不错,速度通常更均衡
  • tar.bz2:压缩率通常更高,但速度更慢

所以大多数日常场景里:

优先考虑 .tar.gz,够用、通用、效率均衡。

而当你特别在意体积时,再考虑 .tar.bz2。

十一、图示:tar 常见工作流



图 1:tar、gzip、bzip2 的组合关系

十二、tar 还有哪些实用操作1. 向已有 tar 包追加文件

如果归档文件还是纯 .tar,可以追加:

tar -rf test.tar *.gif

这里:

  • r:追加文件

注意,这一般针对未压缩的 tar 包更常见。

2. 更新包中的文件

tar -uf test.tar huaji.gif

这里:

  • u:更新

适合把新版本文件替换进已有归档。

3. 打包时可使用通配符

例如:

tar -cvf log.tar *.log

或者:

tar -cvf etc.tar /etc/

你可以打包:

  • 单个文件
  • 多个文件
  • 某个目录
  • 某种模式匹配到的文件集合
十三、为什么解压前最好先建一个目录

这是个非常实战的建议。

很多人拿到压缩包之后,直接就在当前目录执行:

tar -zxvf xxx.tar.gz

如果这个包里面没有顶层目录,而是散装文件,那么它会把文件直接铺到当前目录里。

文件一多,后果通常就是:

  • 当前目录瞬间被刷满
  • 文件难以整理
  • 容易和原文件混在一起
  • 误覆盖风险增加

更稳妥的做法是:

mkdir unpack_testtar -zxvf xxx.tar.gz -C unpack_test

这属于非常值得养成的习惯。

十四、zip:跨平台最友好的格式之一

如果你需要在 Linux 和 Windows 之间频繁交换文件,zip 基本是首选之一。

优势很明显:

  • 兼容性高
  • Windows 原生支持友好
  • Linux 下也容易操作
  • 适合发给不熟悉 Linux 的人
创建 zip 压缩包

最基本形式:

zip test.zip *.txt

表示把当前目录下所有 .txt 文件压缩进 test.zip。

如果要压目录,一般需要递归参数,例如:

zip -r test.zip test/

这里:

  • -r:递归压缩目录
解压 zip

Linux 下通常用:

unzip test.zip
解压到指定目录

unzip test.zip -d /tmp/out

这里:

  • -d:指定解压目录
十五、zip 的密码保护怎么用

有时候你希望压缩包带密码,至少做一层基础保护。
这时 zip 也支持。

压缩时加密码

例如:

zip -rP 123456 test.zip test/

这里:

  • -P:直接指定密码

执行后,这个 zip 包就带密码了。

解压带密码的 zip

可以直接解压,让程序提示你输入密码:

unzip test.zip

也可以直接在命令里给出密码:

unzip -P 123456 test.zip
一个安全提醒

命令行里直接写密码虽然方便,但并不总是安全。
因为:

  • shell 历史记录可能留下密码
  • 进程信息在某些环境下可能被看到

如果涉及真正敏感数据,建议考虑更规范的加密方式,或者至少避免把弱密码写死在命令历史中。

十六、tar 本身能加密吗

严格来说,tar 更偏向归档工具,不是专门的加密容器。
但在 Linux 下,完全可以把 tar 的输出再经过加密程序处理。

例如配合 openssl:

tar -zcf - *.txt | openssl des3 -salt -k 123456 | dd of=test.des3

这个思路是:

  1. tar 把内容打包并压缩
  2. 输出到标准输出
  3. 管道交给 openssl 加密
  4. 最后写成文件

反过来恢复时,再做解密和解包。

不过说实话,日常场景里用得最多的,通常还是:

  • zip 自带密码
  • 或者直接用更明确的加密工具
十七、Linux 下选择哪种格式更合适

这个问题其实没有唯一答案,要看场景。

场景 1:Linux 服务器日常备份

.tar.gz

原因:

  • 命令最常见
  • 兼容性高
  • 压缩率和速度平衡得不错
场景 2:特别在意压缩率

.tar.bz2

适合归档场景,但要接受更慢的处理速度。

场景 3:要发给 Windows 用户

.zip

因为对方大概率不需要额外学习就能打开。

场景 4:只想把很多文件收成一个整体,不追求压缩

.tar
十八、图示:不同格式的选择建议



图 2:常见压缩格式选择思路

十九、几个很容易踩坑的地方1. 别把 .tar 当成“已经压缩”

很多人看到 .tar 就以为已经压缩过了。
其实它只是归档,未必压缩。

2. 解压前先看内容结构

先用:

tar -tf 文件名

或者准备一个专门目录再解压。
别上来就直接解。

3. 不要期待所有文件都能明显变小

视频、图片、音频这类已经压缩过的格式,二次压缩效果通常有限。

4. 带密码不等于绝对安全

尤其是:

  • 4 位数字
  • 6 位纯数字
  • 简单弱密码

这种压缩包密码并不牢靠。
在安全场景里,弱密码基本等于没有。

5. 频繁压缩也有成本

压缩不是“压了就赚”。
它会消耗:

  • CPU
  • 时间
  • I/O

特别是在服务器上批量归档大文件时,要考虑资源占用。

二十、常用命令速查tar 归档打包

tar -cvf test.tar test/
解包

tar -xvf test.tar
查看内容

tar -tf test.tar
tar + gzip压缩

tar -zcvf test.tar.gz test/
解压

tar -zxvf test.tar.gz
解压到指定目录

tar -zxvf test.tar.gz -C /tmp/out
tar + bzip2压缩

tar -jcvf test.tar.bz2 test/
解压

tar -jxvf test.tar.bz2
zip / unzip压缩文件

zip test.zip *.txt
压缩目录

zip -r test.zip test/
解压

unzip test.zip
解压到指定目录

unzip test.zip -d /tmp/out
带密码压缩

zip -rP 123456 test.zip test/
带密码解压

unzip -P 123456 test.zip
二十一、总结

把全文压缩成最关键的几点,其实就是这几句:

  1. 打包是合并文件,压缩是减小体积。
  2. Linux 日常最常用的是 tar.gz。
  3. 跨平台传输优先考虑 zip。
  4. 解压前最好先看内容,或者先建专用目录。
  5. 密码压缩包能保护隐私,但弱密码并不安全。

如果你是刚开始接触 Linux,建议先把下面这四条命令练熟:

tar -cvftar -xvftar -zcvftar -zxvf

这四条熟了,打包压缩这一块就已经能覆盖大部分基础使用场景了。

图 3:Linux 打包压缩命令关系图



图 3:Linux 常见打包与压缩路径

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
突然拉升!美联储、鲍威尔,突发!降息,大消息!

突然拉升!美联储、鲍威尔,突发!降息,大消息!

证券时报e公司
2026-04-04 22:12:45
澳门世界杯虽然圆满落幕了,但国乒对这三个人要重点“照顾”

澳门世界杯虽然圆满落幕了,但国乒对这三个人要重点“照顾”

鸿印百合
2026-04-06 16:03:26
晚清首富盛宣怀:家有两女佣,一个生了宋美龄,另一个生了赵一荻

晚清首富盛宣怀:家有两女佣,一个生了宋美龄,另一个生了赵一荻

鹤羽说个事
2026-03-24 22:01:27
与黑鹰行动相比,美军此次成功解救飞行员,是川普军事改革的胜利

与黑鹰行动相比,美军此次成功解救飞行员,是川普军事改革的胜利

壹家言
2026-04-06 07:52:53
盾构机运到孟买,印度给中国交尾款,首付即全款套路行不通了

盾构机运到孟买,印度给中国交尾款,首付即全款套路行不通了

王新喜
2026-04-06 11:37:03
太可怕了!郭麒麟被聚会朋友偷拍发上网,网友:谁还敢交朋友?

太可怕了!郭麒麟被聚会朋友偷拍发上网,网友:谁还敢交朋友?

子芫伴你成长
2026-04-05 22:43:24
《古惑仔》“耀哥”去世,终年58岁

《古惑仔》“耀哥”去世,终年58岁

都市快报橙柿互动
2026-04-06 10:56:57
14亿人都不会忘却!揭开核酸大王张核子的真面具:权力变现大公

14亿人都不会忘却!揭开核酸大王张核子的真面具:权力变现大公

大鱼简科
2026-02-07 09:52:29
2026北京疏解全面升级!五环内唯一不疏解板块,买房确定性天花板

2026北京疏解全面升级!五环内唯一不疏解板块,买房确定性天花板

售楼中心VIP通道
2026-04-06 14:03:01
中国唯一富过17代的家族,坐拥上海近一千栋房屋,子孙大都上哈佛

中国唯一富过17代的家族,坐拥上海近一千栋房屋,子孙大都上哈佛

新一说史
2026-03-31 13:45:24
首次亮相5记3分!CBA争4卡位战:广东完败山东,徐杰3度遭调侃!

首次亮相5记3分!CBA争4卡位战:广东完败山东,徐杰3度遭调侃!

话体坛
2026-04-06 22:16:19
重磅:乌克兰摧毁俄罗斯新罗西斯克港!击中所有码头

重磅:乌克兰摧毁俄罗斯新罗西斯克港!击中所有码头

项鹏飞
2026-04-06 21:40:36
暴跌40%,关店4000家!曾创神话的“零食界爱马仕”,卖不动了

暴跌40%,关店4000家!曾创神话的“零食界爱马仕”,卖不动了

好贤观史记
2026-03-02 20:17:10
第4轮中超“最差”评选:上海海港1人,浙江队2人,津门虎2人

第4轮中超“最差”评选:上海海港1人,浙江队2人,津门虎2人

男足的小球童
2026-04-06 18:24:59
突发!以色列彻底失控!

突发!以色列彻底失控!

财经要参
2026-04-06 22:56:19
美军炸毁运输机地点已成打卡点,伊朗民众对着飞机残骸上的美国机徽一顿狂踩

美军炸毁运输机地点已成打卡点,伊朗民众对着飞机残骸上的美国机徽一顿狂踩

都市快报橙柿互动
2026-04-06 12:34:10
18岁张恨水新婚夜嫌妻丑,却频繁同房,妻子生下女儿,他怒骂晦气不祥

18岁张恨水新婚夜嫌妻丑,却频繁同房,妻子生下女儿,他怒骂晦气不祥

文史明鉴
2026-03-27 20:03:13
湖南永州发生一起交通事故,一辆重型半挂牵引车与一辆小车相撞,致3死3伤

湖南永州发生一起交通事故,一辆重型半挂牵引车与一辆小车相撞,致3死3伤

台州交通广播
2026-04-06 17:40:32
广东惜败山东13分,球员:1人优秀,4人及格,4人不及格

广东惜败山东13分,球员:1人优秀,4人及格,4人不及格

飞克体育
2026-04-06 21:35:37
就在刚刚!CBA官宣第8位主帅下课!接替者是名帅,曾带队获总冠军

就在刚刚!CBA官宣第8位主帅下课!接替者是名帅,曾带队获总冠军

老吴说体育
2026-04-05 23:29:05
2026-04-06 23:28:49
我不叫阿哏
我不叫阿哏
分享有趣、有用的故事!
306文章数 6625关注度
往期回顾 全部

科技要闻

折叠屏iPhone要来了,富士康已在试产!

头条要闻

安徽6岁失联女童确认遇害 嫌犯已被抓获归案

头条要闻

安徽6岁失联女童确认遇害 嫌犯已被抓获归案

体育要闻

官方:中国女足球员邵子钦加盟本菲卡

娱乐要闻

唐嫣罗晋新加坡遛娃,6岁女儿身高抢镜

财经要闻

史诗级暴跌"一周年" A股接下来如何走?

汽车要闻

阿维塔06T快上市了 旅行车还能这么玩?

态度原创

家居
健康
旅游
数码
手机

家居要闻

温馨多元 爱的具象化

干细胞抗衰4大误区,90%的人都中招

旅游要闻

清明假期广东接待游客1985.1万人次,旅游收入超百亿

数码要闻

微星泰坦18 Ultra 2026游戏本上市,顶配售价47999元

手机要闻

谷歌 Pixel 11 Pro XL渲染图曝光,多款新机待发布

无障碍浏览 进入关怀版