Appearance
理解“压缩”和“解压”是迈向系统管理的重要一步。我会用最通俗的语言、最清晰的逻辑、最实用的例子,从零开始带你彻底搞懂 Linux 下的压缩与解压机制。
一、为什么需要压缩
想象你有一堆散乱的文件(比如照片、文档、代码),你想:
- 把它们打包成一个文件,方便传输或备份;
- 减小体积,节省磁盘空间或加快网络传输。 这就需要两个操作:
- 打包(Archiving):把多个文件合并成一个(如把 100 张照片放进一个箱子)。
- 压缩(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.bz2 | tar -cjvf file.tar.bz2 dir/ | tar -xjvf file.tar.bz2 |
.tar.xz | tar -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.tar4.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.txt5.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!
八、终极总结
- 打包用
tar,压缩靠gzip/bzip2/xz。 - 最常用命令:
- 压缩:
tar -czvf 名字.tar.gz 要压缩的目录 - 解压:
tar -xzvf 名字.tar.gz
- 压缩:
- 和 Windows 传文件?用
zip -r和unzip。 - 记不住参数?就记
-czvf(压)和-xzvf(解)。