书本第八章讲的是linux磁盘与文件系统管理,讲了一堆我不知所云的东西,真的是生涩难懂又没有趣味性,
so,我快速翻到了第九章:文件与文件系统的压缩与打包!!!
1.文件压缩的原理
计算机系统中都是使用byte单位来计量文件容量,但事实上,计算机最小的计量单位应该是bit,1 byte = 8bit
所以每个byte中会有8个格子,下面以"桔"字作为例子,这个字的ASCII值为 u6854,进一步转换为二进制:
01011100 01110101 00110110 00111000 00110101 00110100
看到这里,有人可能就说了,这不对啊,4转化为二进制不是应该为 00000100么,上面怎么是00110100?请看图
ASCII是现今最通用的单字节编码系统,所以,所有的文字都将通过ASCII的规范转换成二进制存入计算机。
我们再来看单个字节,你会发现,每个字节都是由8个bit位组成的,但是有的bit位上却是0,也就是“空的”。于是
工程师就利用一些复杂的计算方式,将这些没有使用到的空间“丢”出来,使得文件占用空间变小,这,就是压缩技术!
等到需要使用文件的时候,再通过算法将文件还原成原本的样子,这就是“解压缩”!
而有的压缩技术很特别,它是将重复的数据进行统计记录的,如果你的数据时100个1,111111111111...那么该压缩技术
hi记录为“100个1”,而不是真的100个1的位存在,这样效率就更高了。
2.linux常见的压缩命令
linux上常见的压缩命令就是gzip和bzip2了(都是由GNU开发的),但是这些命令一次只能针对一个文件来压缩与解压
缩,这样的话,每次压缩和解压缩都需要一堆文件,岂不是很烦人?后来就有了打包软件tar,但是它并没有压缩功能,
它仅仅能够打包,后来GNU将tar和压缩的功能结合在了一起,如此一来使用者就能更方便地压缩与打包了。
3.compress压缩命令
这个压缩命令很老了,大概只有很老的UNIX机器上面还会找到这个软件,我所安装的Centos7上就没有这款压缩软件
虽然很老,老到可以不用学习了,但是知识点还是要了解的,那就安装一下吧,敲下命令安装软件:yum install ncompress
下面开始压缩一个文件:compress [options] 文件/目录
-c //将压缩数据输出到屏幕 -r //连同目录下的文件一同压缩 -v //可以显示压缩后的文件信息,以及文件名变化
注意:centos7上不要轻易尝试compress -c 命令,不要问我为什么,我已经在重装虚拟机了,如果有解救的方
案烦请告知,谢谢。
解压的命令是:uncompress 文件.Z
如上的压缩解压,是不会保留源文件的,如果有需要要对源文件进行一个压缩的备份呢?
使用命令:compress -v text.txt >text.txt.demo.Z
4.gzip命令
gzip命令可以说是应用最广的压缩命令了,可以解开大多数软件压缩的文件,gzip压缩成的新文件名为*.gz
命令是:gzip [options] 文件名
-c //将压缩的数据输出到屏幕 -d //解压 -t //检验压缩文件的一致性,看看文件有无错误 -v //显示压缩比等信息 -# //压缩等级,默认-6,-1最快压缩比差,-9最慢
zcat 文件名.gz 可以用来读取压缩文件,屏幕上显示解压后的文件内容。
5.bzip2命令
为了取代gzip并提供更佳的压缩比,命令和gzip相似(下面只列出新增的命令参数):bzip2 [options] 文件名
-k //保留源文件,新建压缩文件 -z //压缩的参数
bzcat 文件名.bz2 可以用来读取压缩文件,屏幕上显示解压后的文件内容。
6.tar打包(参数很多)
-j //通过bzip2的支持进行压缩/解压缩,此时文件名最好是*.tar.bz2 -z //通过gzip的支持进行压缩/解压缩,此时文件名最好是*.tar.gz -c //新建打包文件(打包) -t //查看打包文件的内容有哪些(查看) -x //解压打包文件(解压) -v //将正在处理的文件名显示出来(压缩和解压过程中) -f filename.tar.bz2 //打包域压缩时的目标文件
-C //在特定目录解压
将当前目录下的02这个目录压缩成了02.tar.gz
查看压缩文件007里面有哪些(源)文件,注意这个-f filename 一定要分开,压缩的时候可以不分(建议也分开写)
其实也可以用绝对路径来写:
至于解压:
上面加上-C 解压到指定目录,不加的话解压到当前目录
如果只想解压打包文件里面的某一个文件的话,先查找要解压的文件的正确名字(grep条件用于选取关键字):
tar -ztvf 02.tar.gz |grep'01'
(P257)
7.后续
后续还有完整备份工具:dump、restore;
以及光盘写入工具、刻录工具,以及其他压缩备份工具的介绍,暂且不做实际操作以及记录,以后有实际需求
的时候再仔细探讨。