chapter9:文件与文件系统的压缩与打包之(1)Linux常见的压缩命令

时间:2021-03-20 16:10:17

一.常见的压缩命令  

在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文件复制到~中,并压缩.

chapter9:文件与文件系统的压缩与打包之(1)Linux常见的压缩命令

可以看到,压缩后原文件就不存在了.gzip的压缩文件是window中是可以被winRAR解压的.上面的54%是显示的压缩比.

我们再将压缩文件中的内容读取出来.由于它是文本文件,可以使用zcat读取.(cat 读取文本文件,zcat读取压缩文本)

chapter9:文件与文件系统的压缩与打包之(1)Linux常见的压缩命令

将上面的文件解压

chapter9:文件与文件系统的压缩与打包之(1)Linux常见的压缩命令

注意,这里原来的压缩文件没有了.

2.bzip2,bzcat 

bzip2是为了取代gzip而开发的.用法与gzip基本一样.

bzip2 [-cdkzv#] 文件名

bzcat 文件名.bz2

-c : 将压缩过程中产生的数据显示出来.

-d: 解压的参数

-k: 保留原文件,不删除

-z: 压缩的参数

-v: 显示压缩比等

chapter9:文件与文件系统的压缩与打包之(1)Linux常见的压缩命令

简单 的记忆命令的方法如下图,

gzip ,gunzip, bzip2, bunzip2 

chapter9:文件与文件系统的压缩与打包之(1)Linux常见的压缩命令

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)打包并压缩

chapter9:文件与文件系统的压缩与打包之(1)Linux常见的压缩命令

-p:保留原来的权限与属性,常用于备份重要的文件.注意/被删除.

如果使用bzip2方法,则如下

chapter9:文件与文件系统的压缩与打包之(1)Linux常见的压缩命令

可以看到,bzip2压缩后的文件更小.

(2)查看tar文件的数据内容,查看的是文件名.

chapter9:文件与文件系统的压缩与打包之(1)Linux常见的压缩命令

可以看到,每个文件都被删除了根目录/.这个是为了安全起见的.

(3) 解压缩,并考虑特定的目录解压

在所在的目录解压.

chapter9:文件与文件系统的压缩与打包之(1)Linux常见的压缩命令

在指定的目录解压

chapter9:文件与文件系统的压缩与打包之(1)Linux常见的压缩命令

在这里一小小心将/etc删除了,我们将之前压缩的文件解压缩到了/目录.使用的是-C参数.(好吓人,rm -rf 一定不能乱用)

主要的几个用法就是上面的,我们还可以仅解压单一文件,还可以只备份比某个时刻还新的文件.

这里要说一下的时,如果tar打包出来的文件没有进行压缩,则如,如果是只进行打包: tar -cv -f file.tar而已,这个文件我们称为tarfile,如果还进行压缩,如 tar -jcv -f file.tar.bz2,则我们称为tarball.