Skip to content

理解“压缩”和“解压”是迈向系统管理的重要一步。我会用最通俗的语言、最清晰的逻辑、最实用的例子,从零开始带你彻底搞懂 Linux 下的压缩与解压机制。

一、为什么需要压缩

想象你有一堆散乱的文件(比如照片、文档、代码),你想:

  1. 把它们打包成一个文件,方便传输或备份;
  2. 减小体积,节省磁盘空间或加快网络传输。 这就需要两个操作:
  3. 打包(Archiving):把多个文件合并成一个(如把 100 张照片放进一个箱子)。
  4. 压缩(Compression):把箱子“压扁”,让它更小(如抽真空)。 备注:在 Linux 中,这两个步骤通常由不同工具完成,但可以组合使用。

二、核心工具介绍

备注:新手只需掌握前 4 个

工具作用常见扩展名特点
tar打包(不压缩).tar把多个文件/目录合成一个文件
gzip压缩.gz速度快,压缩率中等(最常用)
bzip2压缩.bz2比 gzip 压缩率高,速度慢
xz压缩.xz压缩率最高,速度最慢(适合归档)
zip打包+压缩一体.zip兼容 Windows,简单易用

重点:tar 本身不压缩!它只是“打包”。要压缩,必须配合 gzip / bzip2 / xz

三、深入理解

tar.gz = 先打包 + 再压缩. tar 命令可以直接调用压缩工具,一步完成打包+压缩!

原始文件 → [tar 打包] → archive.tar → [gzip 压缩] → archive.tar.gz

四、详细命令详解

4.1 压缩命令 (.tar.gz)

tar -czvf my_backup.tar.gz /home/user/documents
  • -c:create(创建新归档)
  • -z:使用 gzip 压缩
  • -v:verbose(显示过程,可省略)
  • -f:指定文件名(必须放在最后!)

记忆口诀:-czvf = “Create Zipped Verbose File”

4.2 解压命令

tar -xzvf my_backup.tar.gz
  • -x:extract(解压)
  • -z:表示是 gzip 压缩的
  • -v:显示过程
  • -f:指定文件名

4.3 查看内容(不解压)

tar -tzvf my_backup.tar.gz
  • -t:list(列出内容)

4.4 其他压缩格式

格式压缩命令解压命令
.tar.bz2tar -cjvf file.tar.bz2 dir/tar -xjvf file.tar.bz2
.tar.xztar -cJvf file.tar.xz dir/tar -xJvf file.tar.xz

注意大小写:

  • gzip-z(小写)
  • bzip2-j(小写)
  • xz-J(大写!)

4.5 纯打包(不压缩)

有时你只想合并文件,不减小体积(比如准备发给别人再让他们自己压缩):

# 打包
tar -cvf docs.tar /path/to/docs

# 解包
tar -xvf docs.tar

4.6 处理 .zip 文件

# 安装 zip/unzip(如果没装)
sudo dnf install zip unzip   # openEuler/CentOS 8+
# 或
sudo yum install zip unzip   # CentOS 7

# 压缩目录为 zip
zip -r project.zip project_folder/

# 解压 zip
unzip project.zip

# 查看 zip 内容
unzip -l project.zip

-r 表示递归,包含子目录。

五、高级技巧

5.1 解压到指定目录

tar -xzvf file.tar.gz -C /opt/

-C = Change to directory

5.2 只解压某个文件

tar -xzvf backup.tar.gz home/user/config.txt

5.3 查看压缩文件内容(不解压)

# .gz 文件
zcat logfile.txt.gz

# .bz2 文件
bzcat data.csv.bz2

六、新手常见误区

6.1 tar 能压

错! tar 只是打包。.tar 文件通常比原文件总和还大一点点(因为加了元数据)。

6.2 直接对目录用 gzi

不行! gzip 只能处理单个文件。必须先 tar 打包成 .tar,再 gzip 压缩。

6.3 选项顺序无所谓

错! -f 必须紧跟在文件名前。
正确:tar -czvf file.tar.gz dir/
错误:tar -cvfz file.tar.gz dir/(会报错)

七、压缩格式对比表

格式压缩速度压缩率兼容性适用场景
.tar.gz⚡ 快🟢 中⭐⭐⭐⭐⭐日常使用、Web 传输
.tar.bz2🐢 慢🟢 高⭐⭐⭐⭐备份、中等压缩需求
.tar.xz🐌 很慢🔴 极高⭐⭐⭐长期归档、节省空间
.zip⚡ 快🟢 中⭐⭐⭐⭐⭐与 Windows 交互

新手建议:优先用 .tar.gz

八、终极总结

  1. 打包用 tar,压缩靠 gzip / bzip2 / xz
  2. 最常用命令:
    • 压缩:tar -czvf 名字.tar.gz 要压缩的目录
    • 解压:tar -xzvf 名字.tar.gz
  3. 和 Windows 传文件?用 zip -runzip
  4. 记不住参数?就记 -czvf(压)和 -xzvf(解)。