单个文件的压缩和解压
在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