共计1953个字符,预计需要花费5分钟才能阅读完成。
单个文件的压缩和解压
在 linux 中,有两种常用的压缩软件,分别为 gzip 和 bzip,命令分别为 gzip
和bzip2
(bzip 已经更新到第 2 版本)。但是这两个命令都只能压缩单个文件,也就是不能打包成压缩包。
GZIP
压缩
使用 gzip [文件]
即可对文件进行压缩:
压缩以后,1.txt 文件会被替换成 1.txt.gz 文件,即原文件被压缩了,且不再存在。
如果有多个文件,可以使用选项 -r
递归处理文件,即gzip -r [多个文件]
。
还有压缩选项 --fast
和--best
,一个为最快的压缩速度(压缩率最低),一个为最好的压缩比,使用:
gzip [文件] --fast
gzip [文件] --best
更多其他参数可以查看帮助gzip --help
,或者man gzip
。
解压
想要解压文件,使用 gzip -d [文件]
命令即可,或者使用gunzip [文件]
:
文件从 1.txt.gz 还原成了 1.txt,即解压完成了。
BZIP2
压缩
使用 bzip2 [文件]
即可对文件进行压缩:
同上,bzip2 也有压缩选项 --fast
和--best
,一个为最快的压缩速度(压缩率最低),一个为最好的压缩比。
注意:bzip2 没有 -r
选项,不能递归处理多个文件。
解压
使用 bzip2 -d [文件]
或者 bunzip2 [文件]
即可解压文件:
打包
为了解决 gzip 和 bzip2 只能压缩单个文件的问题,我们可以先将多个文件用 tar 进行打包,再进行压缩,就变成了“压缩包”。
TAR
tar 的基本选项有:
# -f : 指定压缩包名称
# -c : 打包文件
# -x : 解压,不需要指定压缩包的压缩类型,它会自动匹配压缩包的类型自行解压。# -v : 显示压缩包压缩的过程
# -P:当压缩包中存在根目录是,自动移除根目录
# -t : 查看压缩包中的内容
# 打包当前文件夹下的内容
tar -cvf test.tar ./xxx
打包
如果想要创建打包一个文件夹,可以使用tar -cvf test.tar ./test
。意思是将当前文件夹下的 test 文件夹里面的所有内容打包(注意不会压缩),并显示详细过程,打包后的文件名为 test.tar:
解包
想要解包 test.tar 文件,我们通常使用命令 tar -xvf test.tar
来解包,这里同样没有压缩,只是对多个文件进行了打包然后再解包:
查看
如果只想查看包里的文件和内容,那么只需输入 tar -tf test.tar
即可:

压缩包
linux 支持很多种类型的压缩文件的压缩和解压,如 tar、zip 等。为了方便实用,tar 还支持 gzip 和 bzip 压缩方式,支持一键压缩成压缩包。
TAR
tar 命令有专门的选项来设置压缩模式,常用的有 gzip 和 bzip2:
# -z : 指定使用 gzip 压缩,一般使用 gzip 压缩的文件都以.tar.gz 作为扩展名
# -j : 指定使用 bzip2 压缩,一般使用 bzip2 压缩的文件都以.tar.bz2 作为扩展名
# -J : 指定使用 xz 压缩,一般使用 xz 压缩的文件都以.tar.xz 作为扩展名
gzip 压缩和解压
创建 gzip 压缩的压缩包,可以使用命令 tar -zcvf test.tar.gz ./test
,即压缩 test 文件夹下的所有内容。其中-z
是以 gzip 来压缩,-c
是创建压缩包,-v
是显示压缩过程,-f
是指定压缩后的文件名:
如果想解压 test.tar.gz,我们使用 tar -zxvf test.tar.gz
来解压:
bzip2 压缩和解压
创建 bzip2 压缩的压缩包,可以使用命令 tar -jcvf test.tar.bz2 ./test
,即压缩 test 文件夹下的所有内容。其中-j
是以 bzip2 来压缩,-c
是创建压缩包,-v
是显示压缩过程,-f
是指定压缩后的文件名:
类似 gzip 解压,bzip2 的解压只需将 -z
换成 -j
即可,命令为tar -jxvf test.tar.bz2
:
xz 压缩和解压
xz 是一种高效的压缩文件格式,它使用 LZMA 算法来实现高压缩比,能够在保持文件可读性的同时显著减小文件大小。经过 tar 打包后的 xz 文件通常为.tar.xz。
类似前面两种压缩命令,只需使用选项 -J
即可。例如压缩文件夹 test,使用命令tar -Jcvf test.tar.xz ./test
:
解压使用命令tar -Jxvf test.tar.xz
:
ZIP
zip 是非常方便有效的压缩格式,Windows 系统中很常用。Linux 我们首先要安装软件包 yum install unzip
或sudo apt install unzip
才能操作 zip 文件。
压缩
使用命令 zip [压缩包.zip] [文件]
可以压缩文件,命令 zip [压缩包.zip] [目录]
来压缩目录。
例如压缩目录 test,使用zip test.zip ./test
:
解压
使用命令 unzip [压缩包.zip]
即可解压压缩包,非常方便,例如unzip test.zip
:
write by dudu233