文档章节

Linux学习-压缩文件的用途与技术

u
 uetucci
发布于 2017/08/23 09:57
字数 705
阅读 12
收藏 0

什么是文件压缩呢?目前我们使用的计算机系统中都 是使用所谓的 Bytes 单位来计量的!不过,事实上,计算机最小的计量单位应该是 bits 才对 啊。此外,我们也知道 1 Byte = 8 bits 。但是如果今天我们只是记忆一个数字,亦即是 1 这 个数字呢?他会如何记录?假设一个 Byte 可以看成下面的模样:

□□□□□□□□

由于我们记录数字是 1 ,考虑计算机所谓的二进制,如此一来, 1 会在最右边占据 1 个 bit ,而其他的 7 个 bits 将会自动的被填上 0 !你看看,其实在这样的例子中,那 7 个 bits 应 该是“空的”才对!不过,为了要满足目前我们的操作系统数据的存取,所以就会将该数据转为 Byte 的型态来记录了!而一些聪明的计算机工程师就利用一些复杂的计算方式,将这些没有 使用到的空间“丢”出来,以让文件占用的空间变小!这就是压缩的技术!

另外一种压缩技术也很有趣,他是将重复的数据进行统计记录的。举例来说,如果你的数据 为“111....”共有100个1时, 那么压缩技术会记录为“100个1”而不是真的有100个1的位存在!这样也能够精简文件记录的容量呢! 非常有趣吧!

简单的说,你可以将他想成,其实文件里面有相当多的“空间”存在,并不是完全填满的,而“压缩”的技术就是将这些“空间”填满,以让整个文件占用的容量下降! 不过,这些“压缩过 的文件”并无法直接被我们的操作系统所使用的,因此,若要使用这些被压缩过的文件数据,则必须将他“还原”回来未压缩前的模样, 那就是所谓的“解压缩” !而至于压缩后与压缩的文 件所占用的磁盘空间大小, 就可以被称为是“压缩比”。

这个“压缩”与“解压缩”的动作有什么好处呢?最大的好处就是压缩过的文件大小变小了, 所以 你的硬盘容量无形之中就可以容纳更多的数据。此外,在一些网络数据的传输中,也会由于 数据量的降低, 好让网络带宽可以用来作更多的工作!而不是老是卡在一些大型的文件传输上面!目前很多的 WWW 网站也是利用文件压缩的技术来进行数据的传送,好让网站带宽 的可利用率上升。

© 著作权归作者所有

共有 人打赏支持
u
粉丝 0
博文 65
码字总数 103136
作品 0
深圳
程序员
私信 提问
linux解压(一) tar命令

tar [-cxtzjvfpPN] 文件与目录 .... 参数: -c :建立一个压缩文件的参数指令(create 的意思); -x :解开一个压缩文件的参数指令! -t :查看 tarfile 里面的文件! 特别注意,在参数的下达...

vfan140
2012/04/18
0
0
Linux下文件的打包、解压缩指令——tar,gzip,bzip2

Linux下文件的打包、解压缩指令——tar,gzip,bzip2   本文是对 鸟叔的Linux私房菜(基础学习篇) 第三版 的学习笔记,原文可参考原书中文网站 鸟叔的Linux私房菜。更多详细信息可直接参考对...

xiaocao13140
05/28
0
0
(五)Linux学习笔记-Linux常用命令-压缩解压

(五)Linux学习笔记-Linux常用命令-压缩解压 压缩解压 以下为Red Hat系列Linux的命令集,我使用的Centos7.5版本。 压缩解压 gzip(压缩文件) gunzip(解压文件) tar(打包目录,常用) zi...

Super_RD
12/06
0
0
Linux压缩好帮手bzip2

导读 对文件进行压缩,可以通过使用较少的字节对文件中的数据进行编码来显著地减小文件的大小,并且在跨网络的文件的备份和传送时很有用。 另一方面,解压文件意味着将文件中的数据恢复到初始...

问题终结者
05/12
0
0
Linux就该这么学-使用实战

基本上已经完整的跟着刘老师学习了遍《Linux就该这么学》这本,然后又按照书籍对着自己的电脑反复的练习练习。学习linux只有多练多敲。才能更好更快的入手linux。直到有进,感觉工作起来,还...

linux-tao
06/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring源码学习笔记-1-Resource

打算补下基础,学习下Spring源码,参考书籍是《Spring源码深度解析》,使用版本是Spring 3.2.x,本来想试图用脑图记录的,发现代码部分不好贴,还是作罢,这里只大略记录下想法,不写太细了 ...

zypy333
59分钟前
10
0
RestClientUtil和ConfigRestClientUtil区别说明

RestClientUtil directly executes the DSL defined in the code. ConfigRestClientUtil gets the DSL defined in the configuration file by the DSL name and executes it. RestClientUtil......

bboss
今天
16
0

中国龙-扬科
昨天
2
0
Linux系统设置全局的默认网络代理

更改全局配置文件/etc/profile all_proxy="all_proxy=socks://rahowviahva.ml:80/"ftp_proxy="ftp_proxy=http://rahowviahva.ml:80/"http_proxy="http_proxy=http://rahowviahva.ml:80/"......

临江仙卜算子
昨天
10
0
java框架学习日志-6(bean作用域和自动装配)

本章补充bean的作用域和自动装配 bean作用域 之前提到可以用scope来设置单例模式 <bean id="type" class="cn.dota2.tpye.Type" scope="singleton"></bean> 除此之外还有几种用法 singleton:......

白话
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部