Linux系统的压缩技术
1、常见的压缩文件扩展名
*.Z ---> compress程序压缩的文件。
*.gz --->gzip 程序压缩的文件;
*.bz2------>bzip2程序压缩的文件;
*.tar ------->tar程序打包的数据,并没有压缩过;
*.tar.gz-----> tar程序打包的文件,其中经过gzip的压缩;
*.tar.bz2----->tar程序打包的文件,其中经过bzip2的压缩;
2、Compress
Compress是非常旧的一款压缩命令,现在不常使用,CentOs默认没有安装这个软件,所以要我们安装ncompress这个软件。gzip已经可以解开使用compress压缩的文件。
安装Conpress命令: yum install ncompress
压缩语法:compress [-rcv] 文件或目录
解压语法:uncompress 文件.Z
选项与参数:
-r : 可以连同目录下的文件也同时给予压缩;
-c:将压缩数据输出成为standard output(输出到屏幕);
-v: 可以显示出压缩后的文件信息以及压缩过程的一些文件名变化。
注:在默认情况下,被compress压缩的源文件会不见了,而压缩文件会被创建起来,而且扩展名会是*.Z, 解压即反过来
将文件压缩成为另外一个文件夹来备份:如
compress -c man.config > man.config.back.Z
这个-c 会将压缩过程的数据输出到屏幕上,而不是写入成为*.Z的压缩文件。所以我们可以通过数据重定向的方法将数据输出成为另一个文件名。
3、gzip, zcat
gzip应用最广的压缩命令。目前gzip可以解开compress、zip与gzip等软件所压缩的文件
解压缩语法:
gzip [-cdtv#] 文件名
参数:
-c : 将压缩的数据输出到屏幕上, 可通过数据流重定向来处理。
-d : 解压缩的参数;
-t : 可以用来检验一个压缩文件的一致性,看看文件有无有误;
-v : 可以显示出原文件/压缩文件的压缩比等信息。
-# : 压缩等级, -1 最快,但压缩比最差, -9 最慢,但压缩比最好,默认是-6
注: a. 解压语法为: gzip -d 文件名
b.在默认情况下,被gzip压缩的源文件会不见了,而压缩文件会被创建起来,而且扩展名会是*.gz, 解压即反过来
c. 将文件压缩成为另外一个文件夹来备份:如
gzip -c man.config > man.config.back.gz
zcat 文件名.gz ---------> zcat可读取compress与gzip的压缩文件, 不需要解压缩。
4、bzip2 bzcat
用法跟gzip一样,扩展名为*.bz2
语法: bzip2 [-cdkzv#] 文件名 ---解压缩
bzcat 文件名.bz2 --->读取压缩文件,不需要解压
参数:
-c : 将压缩的数据输出到屏幕上, 可通过数据流重定向来处理。
-d : 解压缩的参数;
-k : 保留原文件,而不会删除原始文件;
-z : 压缩参数;
-v : 可以显示出原文件/压缩文件的压缩比等信息。
-# : 压缩等级, -1 最快,但压缩比最差, -9 最慢,但压缩比最好,默认是-6
注: 当文件的名称为.bz, .bz2, tbz, tbz2时,可以尝试用bzip2 -d 来解压缩。 也可以使用bunzip来代替bzip2 -d
5、 tar
打包与压缩: tar [-j|-z][cv] [-f 新建的文件名] filename ...
查看文件名: tar [-j|-z][tv] [-f 新建的文件名]
解压缩: tar [-j|-z][xv] [-f 新建的文件名] [-C 目录]
参数:
-c: 新建打包文件,可搭配-v来查看过程中被打包的文件名(filename)
-t: 查看打包文件的内容含有哪些文件名, 重点在查看文件名。
-x: 解打包或解压缩的功能,可以搭配 -C (大写)在特定目录解开。特别留意的是,-c, -t,-x不可同时出现在一串命令行中。
-j: 通过bzip2的支持进行压缩/解压缩,此时文件名最好为*.tar.bz2
-z: 通过gzip的支持进行压缩/解压缩, 此时文件名最好为*.tar.gz
-v: 在压缩/解压缩的过程中,将正在处理的文件名显示出来,查看时,将详细的文件权限和属性都列出来
-f filename: -f 后面要接被处理的文件名。建议 -f 单独写一个参数。
-C 目录 : 这个参数用在解压缩时, 若要在特定目录解压缩,可以使用这个参数。
其他后续练习会使用到的参数介绍:
-p : 保留备份数据的原本权限与属性, 常用于备份(-c)重要的配置文件。
-P : 保留绝对路径, 即允许备份数据中含有根目录存在之意
--exclude=FILE: 在压缩过程中,不要将FILE打包。
记忆下面的方式:
压缩: tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
查询: tar -jtv -f filename.tar.bz2
解压缩: tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录