在 Linux 中,压缩和解压缩文件/文件夹是常见操作,常用的工具包括 tar
、gzip
、bzip2
、zip
和 xz
。以下是详细用法:
一、tar 命令(打包和压缩)
tar
本身是归档工具,但可结合压缩算法(如 gzip
、bzip2
、xz
)进行压缩。
1. 压缩
-
打包为
.tar.gz
(gzip 压缩)tar -czvf 压缩包名.tar.gz 文件或目录路径
示例:
tar -czvf backup.tar.gz /home/user/docs
-
打包为
.tar.bz2
(bzip2 压缩,压缩率高)tar -cjvf 压缩包名.tar.bz2 文件或目录路径
-
打包为
.tar.xz
(xz 压缩,压缩率更高)tar -cJvf 压缩包名.tar.xz 文件或目录路径
2. 解压缩
-
解压
.tar.gz
tar -xzvf 压缩包名.tar.gz -C 目标目录(可选)
-
解压
.tar.bz2
tar -xjvf 压缩包名.tar.bz2
-
解压
.tar.xz
tar -xJvf 压缩包名.tar.xz
参数说明:
-c
:创建归档文件-x
:解压-z
:使用 gzip 压缩/解压-j
:使用 bzip2 压缩/解压-J
:使用 xz 压缩/解压-v
:显示操作过程-f
:指定文件名-C
:指定解压目录(默认当前目录)
二、gzip / gunzip
适用于单个文件的 .gz
压缩格式。
1. 压缩
gzip 文件名 # 生成 文件名.gz(原文件会被删除)
gzip -k 文件名 # 保留原文件
2. 解压
gunzip 文件名.gz # 解压并删除 .gz 文件
gunzip -k 文件名.gz # 保留 .gz 文件
三、bzip2 / bunzip2
适用于 .bz2
压缩格式(压缩率更高)。
1. 压缩
bzip2 文件名 # 生成 文件名.bz2
bzip2 -k 文件名 # 保留原文件
2. 解压
bunzip2 文件名.bz2
四、zip / unzip
适用于跨平台的 .zip
格式。
1. 压缩文件夹
zip -r 压缩包名.zip 目录路径/
示例:
zip -r project.zip ./project/
2. 解压
unzip 压缩包名.zip -d 目标目录(可选)
五、xz / unxz
适用于 .xz
格式(高压缩率,速度较慢)。
1. 压缩
xz 文件名 # 生成 文件名.xz
2. 解压
unxz 文件名.xz
六、常用场景示例
-
快速压缩文件夹为
.tar.gz
tar -czvf archive.tar.gz my_folder/
-
解压到指定目录
tar -xzvf archive.tar.gz -C /target/path/
-
查看压缩包内容(不解压)
tar -tf archive.tar.gz # 查看 .tar.gz 内容 unzip -l archive.zip # 查看 .zip 内容
-
排除文件/目录
tar -czvf backup.tar.gz --exclude="*.tmp" --exclude="logs/" /path/
总结
- 高兼容性:使用
zip
格式与 Windows 共享文件。 - 高压缩率:优先选择
.tar.xz
或.tar.bz2
。 - 常用快捷操作:
.tar.gz
是 Linux 中最常见的压缩格式。