文件与文件系统的解压缩

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

猜你喜欢

转载自www.cnblogs.com/eco-just/p/9551958.html