ToolkitX
知识库工具箱

压缩与解压

tar, gzip, zip, unzip

15min·入门

01. tar——打包与压缩一把梭

tar 是 Linux 里最常用的归档工具。你可能会问「归档」和「压缩」啥区别?归档就是把一堆文件和文件夹打成一个包(就像快递纸箱),压缩才是把这个包挤小(真空包装)。tar 本身只归档不压缩,但加参数可以边打边压。 说白了,tar 就像搬家公司的纸箱——把所有零散东西装进一个箱子方便运输:
bash
tar -cvf archive.tar dir/         # 打包(c=创建, v=看过程, f=指定文件名)
tar -xvf archive.tar               # 解包
tar -czvf archive.tar.gz dir/      # 打包 + gzip 压缩
tar -xzvf archive.tar.gz           # 解压 gzip 包
tar -cjvf archive.tar.bz2 dir/     # 打包 + bzip2 压缩(压得更小但更慢)
tar -xjvf archive.tar.bz2          # 解压 bzip2 包
tar -tf archive.tar                # 只看包里有什么,不解开
tar -xzvf archive.tar.gz -C /path/ # 解压到指定目录
记住这几个参数组合就够了:czvf(压 gzip)、xzvf(解 gzip)、cjvf(压 bz2)、xjvf(解 bz2)。

02. gzip / bzip2——单文件压缩

gzip 和 bzip2 只能压单个文件,所以通常是跟 tar 配合使用。偶尔直接压单个大文件也方便:
bash
gzip file.txt          # 压成 file.txt.gz,原文件消失
gzip -k file.txt       # 保留原文件
gunzip file.txt.gz     # 解压
gzip -9 file.txt       # 最大压缩率(1最快9最小)

bzip2 file.txt         # 压成 file.txt.bz2
bunzip2 file.txt.bz2   # 解压

03. zip / unzip——跨平台通吃

zip 格式的最大好处是跨平台——Windows、macOS、Linux 都能用。如果你的压缩包要传给非 Linux 用户,zip 是最稳妥的选择:
bash
zip -r archive.zip dir/          # 压缩目录
zip archive.zip file1 file2      # 压缩多个文件
unzip archive.zip                # 解压
unzip -l archive.zip             # 只看包内容不解压
unzip archive.zip -d /path/      # 解压到指定目录
zip -e archive.zip secret.txt    # 加密压缩,要设密码

知识测验

1/4正确 0

tar 里表示创建压缩包的两个关键参数是?

下一节

软件包管理

下一节