文档章节

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

u
 uetucci
发布于 2017/08/23 09:57
字数 705
阅读 10
收藏 0
点赞 0
评论 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
linux解压(一) tar命令

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

vfan140
2012/04/18
0
0
Linux压缩好帮手bzip2

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

问题终结者
05/12
0
0
嵌入式软件学习方法 嵌入式软件知识

目前嵌入式软件的学习主要主要面向的几个操作系统是,Linux,WINCE、VxWorks等等。其中Linux是开源免费的,而且其源代码是开放的,更加适合我们学习嵌入式软件。下面我们介绍一下嵌入式软件学...

创客学院
04/12
0
0
Linux tar命令和压缩、解压缩详解

Linux下的压缩文件剖析   对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕。别个不说,单单就压缩文件为例,我们知道在Windows下最常见的压缩文件就只有两种,一...

Junn
2012/09/26
0
0
用示例讲解 Linux gunzip 命令

我们已经讨论过 Linux 下 gzip 命令的用法。对于初学者来说, 工具主要用于压缩或者展开文件。解压时,在 命令后添加 选项即可,使用示例如下: 不过,在解压或扩展 gzip 创建的压缩文件时,...

作者: Himanshu Arora
04/15
0
0
Linux就该这么学-使用实战

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

linux-tao
06/28
0
0
Q&A about Linux

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

pikylearnlinux
01/08
0
0
后端程序员必备的Linux基础知识

本文同步更新在我的Github上:网页链接 我自己总结的Java学习的系统知识点以及面试问题,目前已经开源,会一直完善下去,欢迎建议和指导欢迎Star: https://github.com/Snailclimb/Java-Gui...

Amsour丶
07/06
0
0
前端&后端程序员必备的Linux基础知识

刚刚把文章改了名字:《后端程序员必备的Linux基础知识》->《前端&后端程序员必备的Linux基础知识》。 本文同步更新在我的Github上:网页链接 我自己总结的Java学习的系统知识点以及面试问题...

SuShine
07/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

about git flow

  昨天元芳做了git分支管理规范的分享,为了拓展大家关于git分支的认知,这里我特意再分享这两个关于git flow的链接,大家可以看一下。 Git 工作流程 Git分支管理策略   git flow本质上是...

qwfys
今天
2
0
Linux系统日志文件

/var/log/messages linux系统总日志 /etc/logrotate.conf 日志切割配置文件 参考https://my.oschina.net/u/2000675/blog/908189 dmesg命令 dmesg’命令显示linux内核的环形缓冲区信息,我们可...

chencheng-linux
今天
1
0
MacOS下给树莓派安装Raspbian系统

下载镜像 前往 树莓派官网 下载镜像。 点击 最新版Raspbian 下载最新版镜像。 下载后请,通过 访达 双击解压,或通过 unzip 命令解压。 检查下载的文件 ls -lh -rw-r--r-- 1 dingdayu s...

dingdayu
今天
1
0
spring boot使用通用mapper(tk.mapper) ,id自增和回显等问题

最近项目使用到tk.mapper设置id自增,数据库是mysql。在使用通用mapper主键生成过程中有一些问题,在总结一下。 1、UUID生成方式-字符串主键 在主键上增加注解 @Id @GeneratedValue...

北岩
今天
2
0
告警系统邮件引擎、运行告警系统

告警系统邮件引擎 cd mail vim mail.py #!/usr/bin/env python#-*- coding: UTF-8 -*-import os,sysreload(sys)sys.setdefaultencoding('utf8')import getoptimport smtplibfr......

Zhouliang6
今天
1
0
Java工具类—随机数

Java中常用的生成随机数有Math.random()方法及java.util.Random类.但他们生成的随机数都是伪随机的. Math.radom()方法 在jdk1.8的Math类中可以看到,Math.random()方法实际上就是调用Random类...

PrivateO2
今天
3
0
关于java内存模型、并发编程的好文

Java并发编程:volatile关键字解析    volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在...

DannyCoder
昨天
1
0
dubbo @Reference retries 重试次数 一个坑

在代码一中设置 成retries=0,也就是调用超时不用重试,结果DEBUG的时候总是重试,不是0吗,0就不用重试啊。为什么还是调用了多次呢? 结果在网上看到 这篇文章才明白 https://www.cnblogs....

奋斗的小牛
昨天
2
0
数据结构与算法3

要抓紧喽~~~~~~~放羊的孩纸回来喽 LowArray类和LowArrayApp类 程序将一个普通的Java数组封装在LowArray类中。类中的数组隐藏了起来,它是私有的,所以只有类自己的方法才能访问他。 LowArray...

沉迷于编程的小菜菜
昨天
1
0
spring boot应用测试框架介绍

一、spring boot应用测试存在的问题 官方提供的测试框架spring-boot-test-starter,虽然提供了很多功能(junit、spring test、assertj、hamcrest、mockito、jsonassert、jsonpath),但是在数...

yangjianzhou
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部