在日常运维工作中,不可避免会打包压缩和解压文件,Linux上有多个类似功能的命令,如 tar、gzip、bzip2、xz、zip,今天就跟大家一起区分一下并学会如何高效实用它们。
一、先搞清楚:归档 vs 压缩
很多新手容易混淆:
- 归档(Archive):把多个文件/目录打包成一个文件,但体积没缩小。常用命令:tar
- 压缩(Compress):通过算法减少文件体积。常用命令:gzip、bzip2、xz、zip
比如:你把一堆源代码打包成 project.tar —— 这只是归档。 然后再对它压缩成 project.tar.gz —— 这才是真正的“压缩包”。
二、归档命令:tar
tar 是 Linux 归档工具之王,简单举例,后面有跟其他压缩命令组合使用实例。
| 功能 | 命令 |
|---|---|
| 打包 | tar -cvf archive.tar file1 file2 dir/ |
| 解包 | tar -xvf archive.tar |
| 查看内容 | tar -tvf archive.tar |
常用参数:
| 参数 | 含义 | 备注 |
|---|---|---|
| -c | create,创建归档 | 打包 |
| -x | extract,解包 | 解压 |
| -t | list,列出内容 | 查看归档里有什么 |
| -v | verbose,显示过程 | 方便观察进度 |
| -f | file,指定归档文件名 | 一般放最后,必须有 |
| -C dir | 切换到指定目录 | 常用在解压到目标路径 |
| –exclude=PATTERN | 排除文件 | 打包时跳过某些目录/文件 |
| –delete | 从归档中删除 | 注意:只对未压缩的 .tar 有效 |
三、压缩命令
Linux 有多种压缩工具,区别主要在 压缩比和速度。
【温馨提示】bzip2/xz命令在压缩时,默认原始的文件被删除,如果你想要压缩后还留着原文件,可以加参数 -k
3.1 gzip
# 压缩生成 file.txt.gz,源文件消失 gzip file.txt # 解压 gunzip file.txt.gz 或者使用 gzip -d file.txt.gz
特点:快、常用,适合一般场景。
3.2 bzip2
# 有些系统版本需要自行安装 yum install -y bzip2 # 压缩生成 file.txt.bz2,源文件消失 bzip2 file.txt # 保留源文件 bzip2 -k file.txt # 解压 bunzip2 file.txt.bz2
特点:压缩比高,但速度比 gzip 慢。
3.3 xz
# 压缩生成 file.txt.xz,源文件消失 xz file.txt # 解压 unxz file.txt.xz
特点:压缩比高,适合长期存档。
3.4 zip
# 压缩 zip archive.zip file1 file2 dir/ # 解压 unzip archive.zip
特点:跨平台通用(Windows 友好)。
四、tar 与压缩结合技
平时我们最常见的就是 tar + 压缩的组合:
| 格式 | 命令 |
|---|---|
| .tar.gz | tar -czvf archive.tar.gz file1 dir/ |
| .tar.bz2 | tar -cjvf archive.tar.bz2 file1 dir/ |
| .tar.xz | tar -cJvf archive.tar.xz file1 dir/ |
对应解压:
tar -xzvf archive.tar.gz # 解压 .tar.gz tar -xjvf archive.tar.bz2 # 解压 .tar.bz2 tar -xJvf archive.tar.xz # 解压 .tar.xz
小技巧:参数里的 z/j/J 分别代表 gzip/bzip2/xz。
五、实战对比
我们用一个 100MB 的日志文件 来实验,看看压缩差别:
5.1 测试文件
我准备了四个一样大的文件

5.2 分别压缩
gzip test1.log bzip2 test2.log xz test3.log zip test4.zip test4.log
3. 查看大小
ll -h

结论:
- bzip2 压缩率最高,适合长期存档
- gzip & zip 差不多,gzip 在 Linux 更常见
- xz 介于两者之间
六、实用技巧
解压到指定目录
tar -xvf archive.tar.gz -C /data
只打包指定目录下的文件,不含目录本身
tar -czvf code.tar.gz -C /path/to/code .
只解压某个文件
tar -xvf archive.tar.gz path/to/file
压缩比测试(适合硬盘党)
tar -cvf – bigdir/ | xz > bigdir.tar.xz
生产环境使用总结
- 归档用 tar,压缩选 gzip/bzip2/xz
- 日常:tar.gz 足够 → 快捷 & 通用
- 高压缩:tar.bz2 → 节省空间
- 跨平台:zip → Windows 友好
只要记住这套逻辑,你就能轻松应对 99% 的 Linux 压缩归档需求。
原创文章,作者:余初云,如若转载,请注明出处:https://blog.jidcy.com/jsjc/2626.html
