chapter9:文件与文件系统的压缩与打包之(1)Linux常见的压缩命令
一.常见的压缩命令
在linux中,压缩文件的扩展名有如下:
gz :gzip压缩
bz2 :bzip2压缩.
tar.:tar程序打包的数据,没有压缩
tar.gz : tar打包,并由gzip压缩的.
tar.bz2: tar打包,并由bzip2压缩
(注意,Linux中的扩展名与文件属性没有关系,只是为了让我们好记.)
bzip2比gzip压缩效果好,这两个压缩命令只能对一个文件进行压缩,如果要压缩一大堆文件的时候,就要用tar进行打包了.
1.gzip, zcat
压缩文件的扩展名为gz. 语法如:
gzip [-cdtv#] 文件名
zcat 文件名.gz
下面我们将/etc/fstab文件复制到~中,并压缩.
可以看到,压缩后原文件就不存在了.gzip的压缩文件是window中是可以被winRAR解压的.上面的54%是显示的压缩比.
我们再将压缩文件中的内容读取出来.由于它是文本文件,可以使用zcat读取.(cat 读取文本文件,zcat读取压缩文本)
将上面的文件解压
注意,这里原来的压缩文件没有了.
2.bzip2,bzcat
bzip2是为了取代gzip而开发的.用法与gzip基本一样.
bzip2 [-cdkzv#] 文件名
bzcat 文件名.bz2
-c : 将压缩过程中产生的数据显示出来.
-d: 解压的参数
-k: 保留原文件,不删除
-z: 压缩的参数
-v: 显示压缩比等
简单 的记忆命令的方法如下图,
gzip ,gunzip, bzip2, bunzip2
3.打包命令tar
gzip与bzip2只能对单一文件进行压缩,如果想对多文件进行压缩,则要用到打包命令.tar的几个重要的用法如下
tar [-j|-z] [cv] [-f 新建文件名] filename <===打包与压缩
tar [-j|-z] [tv] [-f 新建文件名] <====查看文件名
tar [-j|-z] [xv] [-f 新建文件名] [-C 目录] <====解压缩
参数:
-c :新建打包文件,可以用 -v 来查看过程中被打包的文件名.
-t :查看打包文件中的文件名,
-x :解打包文件.
-c,-t,-x不可能出现在同一个命令中.
-j: 通过bzip2进行压缩,解压缩.
-z: 通过gzip进行压缩,解压缩.
-v: 在进行的过程中显示文件名.
-f filename: 建议单独成一个参数.
-C: 解压缩时到特定的目录.
最常用的简单的我们只用记
压缩: tar -jcv -f filename.tar.bz2 要被压缩的文件或者目录名
查询: tar -jtv -f filename.tar.bz2
解压缩: tar -jxv -f filename.tar.bz2 -C 想解压的目录
tar并不会主动产生创建的文件名,所以我们要自定义,如filename.tar.bz2.
下面是例子
(1)打包并压缩
-p:保留原来的权限与属性,常用于备份重要的文件.注意/被删除.
如果使用bzip2方法,则如下
可以看到,bzip2压缩后的文件更小.
(2)查看tar文件的数据内容,查看的是文件名.
可以看到,每个文件都被删除了根目录/.这个是为了安全起见的.
(3) 解压缩,并考虑特定的目录解压
在所在的目录解压.
在指定的目录解压
在这里一小小心将/etc删除了,我们将之前压缩的文件解压缩到了/目录.使用的是-C参数.(好吓人,rm -rf 一定不能乱用)
主要的几个用法就是上面的,我们还可以仅解压单一文件,还可以只备份比某个时刻还新的文件.
这里要说一下的时,如果tar打包出来的文件没有进行压缩,则如,如果是只进行打包: tar -cv -f file.tar而已,这个文件我们称为tarfile,如果还进行压缩,如 tar -jcv -f file.tar.bz2,则我们称为tarball.