文档章节

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,gzip,bzip2

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

xiaocao13140
05/28
0
0
Q&A about Linux

不好意思,个人逻辑思维不太好,以下尽量采用形象的类比方式来解释,通俗但不一定确切。精确的描述还是要翻文档,仅以此抛砖引玉。 Q1:交叉编译器的用途是什么? A1:就像操两种不同语言的人需...

pikylearnlinux
01/08
0
0
linux解压(一) tar命令

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

vfan140
2012/04/18
0
0
Linux 命令行黑技术(LTS)

Linux命令行,是开发人员日常接触的东西。但是,有很多小技巧。我在这里做个总结(长期更新)。 在路径间如鱼得水 黑技术1:设立根目录 如果,你经常使用一个目录作为你的根目录,那么,你可以...

PcDack
04/18
0
0
如何在 Linux 中压缩和解压缩文件

当在备份重要文件和通过网络发送大文件的时候,对文件进行压缩非常有用。请注意,压缩一个已经压缩过的文件会增加额外开销,因此你将会得到一个更大一些的文件。所以,请不要压缩已经压缩过的...

07%
09/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

活动推荐|互联网3.0与区块链新时代论坛(北京)

1 时间地点 **时间:**9月22日 14:00 - 18:00 地点:(北京海淀)西大街70号 3w咖啡 二层 2 活动详情 Harmony创始人Stephen及团队将介绍他们的区块链分片扩容技术。Stephen曾任Apple地图服务...

HiBlock
41分钟前
1
0
如何优雅的删除Redis的大key

关于Redis大键(Key),我们从[空间复杂性]和访问它的[时间复杂度]两个方面来定义大键。前者主要表示Redis键的占用内存大小;后者表示Redis集合数据类型(set/hash/list/sorted set)键,所含有的...

IT--小哥
51分钟前
1
0
spring cloud学习笔记

工具 eclipse 4.9 gradle 4.10.2 spring cloud Finchley.SR1 spring boot 2.0.4 build.gradle buildscript {ext {springBootVersion = '2.0.4.RELEASE'}repositories {jcenter()......

bobby2006
53分钟前
1
0
Tcl命令操作实验-----(5)

Vivado% proc myproc {arg} {puts $arg}Vivado% myproc mynamemynameVivado% if {2>1} {puts 2>1} else {puts 2<1}2>1...

whoisliang
今天
1
0
比特币钱包RPC的PHP调用方法

当我们希望在Php开发的网站中加入比特币支付功能时,需要解决的第一个 问题,就是如何在Php程序代码中调用比特币钱包的RPC API开发接口来实现 我们期望的功能,例如比特币的支付与接收。 例如...

汇智网教程
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部