Linux下最常见的压缩文件通常都是.tar.gz格式的,除此之外还有.tar、.gz、.bz2、.zip
下面介绍Linux下最常见的后缀名所对应的压缩工具:
- .gz:表示由gzip压缩工具压缩的文件。
- .bz2:表示bzip2压缩工具压缩的文件。
- .tar:表示由tar打包工具打包的文件(tar并没有压缩功能,只是把一个目录合并成一个文件)
- .tar.gz:可以理解为先有tar打包,然后再由gzip压缩。
- .tar.bz2:可以理解为先有tar打包,然后再由bzip2压缩。
- .tar.xz:可以理解为先有tar打包,然后再由xz压缩。
gzip压缩工具
gzip命令的格式为 gzip [-d#] filename,其中#为1~9的数字
- -d:该参数在解压缩时使用。
- -#:表示压缩等级。1为最差,9为最好,默认为6。
例如:
压缩当前文件夹的1.txt文件:
# gzip 1.txt
压缩后的1.txt文件就会变成1.txt.gz
解压1.txt.gz文件:
# gzip -d 1.txt.gz
关于-#选项很少用到,使用默认压缩级别就够了。
bzip2压缩工具
bzip2命令的格式为bzip2 [-dz] filename,它只有-z(压缩),-d(解压缩)两个常用选项。压缩级别有1~9,默认时9级。压缩时加或不加-z选项都可以压缩文件。示例命令如下:
# bzip2 1.txt
# ls
# 1.txt.bz2
# bzip2 -d 1.txt.bz2
# ls
# 1.txt
# bzip -z 1.txt
# ls
# 1.txt.bz2
xz压缩工具
xz命令的格式为:xz [-dz] filename,最常用的为-dz选项,这里和bzip2相似。
示例命令如下:
# xz -z 1.txt
# ls
# 1.txt.xz
# xz -d 1.txt.xz
# ls
# 1.txt
# xz 1.txt
# ls
# 1.txt.xz
以上三种压缩工具都不支持压缩文件目录,否则会报错。
tar打包工具
tar本身就是一个打包工具,可以把目录打包成一个文件,它把所有文件整合成一个大文件,方便复制或移动。该命令的格式为:tar [-zjxcvfpP] filename tar,有多个选项,其中不常用的在这里不做解释。
- -z:表示同时用gzip压缩。
- -j:表示同时用bzip2压缩
- -J:表示同时用xz压缩。
- -x:表示解包或者解压缩。
- -t:表示查看tar包里的文件。
- -c:表示建立一个tar包或者压缩文件包。
- -v:表示可视化。
- -f:后面跟文件名(即-f filename,表示压缩后的文件名为filename,或者解压文件filename。需要注意的是,如果是多个参数组合的情况下,请把-f参数写到最后面。)
具体操作如下(这里以图片的形式给出):
tar命令不仅可以打包目录,也可以打包文件,打包文件时可以不加-v参数,表示不可视化。示例命令如下:
解包命令:
# tar -xvf test.tar test.txt
其实不管是打包还是解包,原来的文件是不会删除的,而且它会覆盖当前已经存在的文件或目录。*
打包的同时使用gzip压缩
gzip压缩命令:
# tar -czvf temp.tar.gz temp
gzip解压缩命令:
# tar -zxvf temp.tar.gz
bzip2压缩命令:
# tar -cjvf temp.tar.bz2 temp
bzip解压命令:
# tar -jxvf temp.tar.bz
也可以用-tf参数来查看压缩包的文件列表:
# tar -tf temp.tar.gz
或者
# tar -tf temp.tar.bz2
使用zip压缩
压缩文件:
# zip test.zip test.txt
压缩目录(如果被压缩的目录下有二级目录甚至有更多的子目录时,如果想要一并压缩二级目录下的文件,需要加上-r选项):
zip -r temp.zip temp