书本第八章讲的是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打包