打包(归档)和压缩(包含两者的区别)

在讲解具体的归档命令和压缩命令之前,先来了解一下归档和压缩所各自代表的含义。

归档,也称为打包,指的是一个文件或目录的集合,而这个集合被存储在一个文件中。归档文件没有经过压缩,因此,它占用的空间是其中所有文件和目录的总和。

通常,归档总是会和系统(数据)备份联系在一起,不过,有关数据备份的内容,留到后续章节讲,本章仅学习归档命令的基本使用。

和归档文件类似,压缩文件也是一个文件和目录的集合,且这个集合也被存储在一个文件中,但它们的不同之处在于,压缩文件采用了不同的存储方式,使其所占用的磁盘空间比集合中所有文件大小的总和要小。

压缩是指利用算法将文件进行处理,已达到保留最大文件信息,而让文件体积变小的目的。其基本原理为,通过查找文件内的重复字节,建立一个相同字节的词典文件,并用一个代码表示。比如说,在压缩文件中,有不止一处出现了 "C语言中文网",那么,在压缩文件时,这个词就会用一个代码表示并写入词典文件,这样就可以实现缩小文件体积的目的。

由于计算机处理的信息是以二进制的形式表示的,因此,压缩软件就是把二进制信息中相同的字符串以特殊字符标记,只要通过合理的数学计算,文件的体积就能够被大大压缩。把一个或者多个文件用压缩软件进行压缩,形成一个文件压缩包,既可以节省存储空间,有方便在网络上传送。

如果你能够理解文件压缩的基本原理,那么很容易就能想到,对文件进行压缩,很可能损坏文件中的内容,因此,压缩又可以分为有损压缩无损压缩。无损压缩很好理解,指的是压缩数据必须准确无误;有损压缩指的是即便丢失个别的数据,对文件也不会造成太大的影响。有损压缩广泛应用于动画、声音和图像文件中,典型代表就是影碟文件格式 mpeg、音乐文件格式 mp3 以及图像文件格式 jpg。

采用压缩工具对文件进行压缩,生成的文件称为压缩包,该文件的体积通常只有原文件的一半甚至更小。需要注意的是,压缩包中的数据无法直接使用,使用前需要利用压缩工具将文件数据还原,此过程又称解压缩

Linux 下,常用归档命令有 2 个,分别是 tar 和 dd(相对而言,tar 的使用更为广泛);常用的压缩命令有很多,比如 gzip、zip、bzip2 等。这些命令的详细用法,后续文件会做一一介绍。

注意,tar 命令也可以作为压缩命令,也很常用。


推荐文章
Python pydoc模块详解:查看、生成帮助文档

前面讲过,在创建函数、类以及类方法时,可以为它们添加说明性文档,即分别在函数体、类体以及类方法内部的首行添加具有说明性的字符串即可。例如: #demo.py文件 defdisplay(add):

Shell until循环用法详解

unti循环和while循环恰好相反,当判断条件不成立时才进行循环,一旦判断条件成立,就终止循环。 until的使用场景很少,一般使用while即可。 Shelluntil循环的用法如下: un

Python with用法:自动关闭文件

在前面的程序中,我们都采用了程序主动关闭文件的方式。实际上,Python提供了with语句来管理资源关闭。比如可以把打开的文件放在with语句中,这样with语句就会帮我们自动关闭文件。 with语

msdia80.dll是什么文件?可以删除吗?

“msdia80.dll”是一个组件文件,是可以删除的。其删除方法:出现此问题的原因:计算机上安装了MicrosoftVisualC++2005可再发行组件时,Msdia80.dll文件被错误安装在其

1)accept 2)accept-encoding 3)accept-language 4)Cookie 5)user-agent 1)content-encoding 2)content-len

去燥自编码器(TensorFlow)实现详解

前两节中探讨的两个自编码器属于欠完备自动编码机,因为隐藏层的维度比输入(输出)层低。去噪自编码器属于过完备自编码器,隐藏层的维数大于输入层时效果会更好。 去噪自编码器从受损(噪声)输入中学习,它向编

GDB多进程调试

在C语言中创建多进程程序需要使用fork相关的一些函数,调用一次fork函数就会创建一个进程。多进程调试时,我们需要对调试的进程和未调试的进程进行设置。下面介绍的一些命令是我们在调试时经常使用到的。

JSP Out.clearBuffer()方法:清除缓冲区中的数据并输出到客户端

该方法用于清除缓冲区中的数据,并把数据输出到客户端,即JSP页面。 语法: clearBuffer() 示例 清除缓冲区中的数据,并把数据输出到客户端,关键代码如下:

Unity 3D碰撞体(Collider)

在游戏制作过程中,游戏对象要根据游戏的需要进行物理属性的交互。 因此,Unity3D的物理组件为游戏开发者提供了碰撞体组件。碰撞体是物理组件的一类,它与刚体一起促使碰撞发生。 碰撞体是简单形状,如

adobe rgb和srgb的区别是什么?

adobergb和srgb的区别一、sRGB与AdobeRGB开发厂家不同sRGB色域是一个通用的标准色域,是由微软、惠普于1997年共同开发的标准色彩空间。AdobeRGB是Adobe公司于1998

一名合格的程序员需要具备哪些技能?

程序世界是一片广阔的大地,相比我十多年前进入这个世界时,这片大地的边界又扩大了很多倍。初入程序世界难免迷茫,要在这个世界立足、生存,并得到很好的发展,应首要具备怎样的技能呢?未来的程序之路,先给自己准

wps会员有什么用?

目前WPS会员共分为如下三种:1)WPS会员:开通后可享有如「PDF转Word、图片转文字、图片转PDF」等特色功能,且拥有更大的单个文件上传大小、云空间扩展至100G等;2)稻壳会员:开通后可免费下

b/s架构是什么意思?

B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简

MySQL查看表中的约束

在MySQL中可以使用SHOWCREATETABLE语句来查看表中的约束。 查看数据表中的约束语法格式如下: SHOWCREATETABLE; 例1 创建数据表tb_emp8并指定id为主键约束

C++ array迭代器及用法

数组模板定义了成员函数begin()和end(),分别返回指向第一个元素和最后一个元素的下一个位置的随机访问迭代器。如前面章节所述,随机访问迭代器具有最多的功能,能使用它进行全部的操作。可以在循环中

前端面试问题及答案总结(三)

说说你对语义化的理解?1,去掉或者丢失样式的时候能够让页面呈现出清晰的结构2,有利于SEO:和搜索引擎建立良好沟通,有助于爬虫抓取更多的有效信息:爬虫依赖于标签来确定上下文和各个关键字的权重;3,方便

什么是OA?

OA全称OfficeAutomation,即办公自动化,是将计算机、通信等现代化技术运用到传统办公方式,进而形成的一种新型办公方式。办公自动化利用现代化设备和信息化技术,代替办公人员传统的部分手动或重

LNMP一键安装过程详解

本节介绍如何利用下载好的LNMP一键安装包在Linux系统上安装LNMP环境。 解压缩一键安装包 我们把LNMP一键安装包保存在/usr/local/src/目录下,第一步仍然是解压缩一键安装包。命

String API常用方法介绍

Java中的String类包含了50多个方法。令人惊讶的是绝大多数都很有用,可以设想使用的频率非常高。下面的API(Java应用程序编程接口)注释汇总了一部分最常用的方法。 在这里,一般不列出某个类

C++数组及其使用方法完全攻略

图1只能保存一个值的不同类型的变量 inthours[6]; 图2存储6个元素的数组示例 constintSIZE=6; inthours[SIZE]; floattemperatur