文件压缩命令

在linux系统中,比较常见的压缩格式有.gz、.bz2、.xz、.Z和zip。不同的压缩格式对于着不同压缩技术,并且他们的压缩算法也不一样,得到的压缩比也不一样。 

压缩比:就是源文件/压缩后的文件比例。压缩比越小,压缩文件越大;反之,压缩比越大,压缩文件就越小。


常见的压缩技术有compress、gzip、bzip2、xz、zip

接下逐个介绍这些压缩技术的使用

一、compress是比较老旧的压缩技术,这里只是简单介绍

语法格式:compress 文件名

使用compress压缩后的文件格式为*.Z,且源文件会删除。

使用uncompress来解压缩



二、使用gzip来压缩或解压缩文件

语法格式:gzip [-dv#] 文件名

使用gzip压缩文件后,压缩文件为*.gz,源文件会被删除

-d:用于解压缩

-#:指定压缩等级,范围为1-9,默认压缩等级为6;等级越小,压缩比越差;等级越大,压缩比越好。

-v:显示源文件/压缩文件的压缩比。


gzip压缩的文件可以使用gunzip来解压缩或者使用gzip -d来解压缩,解压缩后会删除压缩文件。

对于压缩后的文件如何查看压缩文件里面的内容呢?

使用zcat命令可以在不解压缩的情况下来查看文本文件里的内容。

语法格式:zcat 压缩文件

文件压缩和文件打包命令_gzip命令  bzip2命令 xz命令


三、使用bzip2命令来压缩文件,bzip2提供了比gzip更好的压缩比,使用格式几乎和gzip相同

语法格式:bzip2 [-dk#] 文件名

使用bzip2来压缩,压缩后的文件为*.bz2,且源文件会被删除。

-d:用于解压缩

-#:指定压缩等级,范围为1-9,默认压缩等级为6

-k:压缩后,保留原文件


使用bunzip2或者bzip2 -d可以来解压缩文件,解压缩后,压缩文件删除。

同样使用bzcat可以用来在不解压缩的情况下,查看文本文件里的内容

语法格式:bzcat 压缩文件

文件压缩和文件打包命令_gzip命令  bzip2命令 xz命令_02



四、使用xz命令来压缩文件,压缩后源文件删除。

使用xz命令压缩的文件,文件名为*.xz

语法格式:xz [-dk#] 文件名

-d:用于解压缩

-k:压缩后保留源文件

-#:指定压缩等级,范围为1-9,默认为6


使用unxz或者xz -d来解压缩文件,解压缩后,删除压缩文件

同样,使用xzcat可以在不解压缩的情况下,查看文本文件里的内容

语法格式:xzcat 压缩文件

文件压缩和文件打包命令_gzip命令  bzip2命令 xz命令_03


还有另外一种压缩指令就是zip命令

语法格式:zip 压缩后的文件名  要压缩的文件

使用zip命令压缩后,原文件不会删除


 


打包命令--tar

前面谈到的大多指令只能对单一文件进行压缩,不能对多个文件一起压缩,虽然gzip、bzip2能够对目录来进行操作,但是仅仅是将目录下的文件逐个进行压缩。而要想对这个目录压缩,我们可以使用tar目命令来完成。

tar是一种归档(或者打包)工具。归档并不是压缩,但是tar命令支持gzip、bzip2等压缩命令,因此可以结合压缩命令来一起使用。

语法格式:

tar [option] archive.tar FILE....

-c:创建归档文件

-f archive.tar:操作归档文件,-f后面必须接文件,且文件名的后缀为.tar

文件压缩和文件打包命令_gzip命令  bzip2命令 xz命令_04

--xattrs:归档时保留文件的扩展属性信息

-t:在不展开归档的情况下,查看归档文件包含哪些文件

文件压缩和文件打包命令_gzip命令  bzip2命令 xz命令_05

-x:展开归档,就是解打包的意思

    --展开归档后,归档文件不会删除

-C directory:将压缩文件解压缩到指定目录下

文件压缩和文件打包命令_gzip命令  bzip2命令 xz命令_06

tar命令和压缩命令组合使用时,可以有这些选项:

-v:在压缩和解压缩的时候,显示正在处理的文件名

-zcf:归档文件后再使用gzip来压缩,此时文件的后缀最好为.tar.gz

-zxf:调用gzip来解压缩并展开文件

文件压缩和文件打包命令_gzip命令  bzip2命令 xz命令_07

-jcf:先归档文件,在调用bzip2来压缩,此时的文件名后缀最好为.tar.bz2

-jxf:调用bzip2解压缩并展开归档

文件压缩和文件打包命令_gzip命令  bzip2命令 xz命令_08

-Jcf:先归档文件在调用xz命令开压缩,此时的文件名后缀最好为.tar.xz

-Jxf:调用xz命令解压缩并展开归档

需要说明的是:在某些tar版本中不支持-J选项,可以使用tar --version来查看tar的当前版本信息