看得懂的技术 01:压缩和解压缩

1. 引言

最近想了很久,决定开一个新专题,叫「看得懂的技术」。起因是前阵子网上流传的一个故事:一个博主给小孩哥分享了游戏的压缩文件,小孩哥打不开就开始对博主「拔刀相向」。先不论这件事产生的社会学原因,单从技术掌握程度的角度来看,很多人的计算机技术都不过硬,至少有些基本技能都没有掌握。因此,今天就开这么个专题,聊聊一些最基本、最实用的计算机技术。

2. 压缩是什么?

在日常生活中,压缩只是一种简化笼统的说法。完整的说应该叫「数据压缩」。本质上就是对已有的数据进行编码,借助算法和编码,在保证数据内容的前提之下,对数据的冗余部分进行移除和替换,以达到降低存储占用和方便传输的目的。

打个比方,我们可以将数字 $100000000000000000000$ 进行「压缩」。比如我们可以用科学记数法,将 $100000000000000000000$ 用 $1 \times 10^{20}$ 进行表示,这样数字的长度就明显减少了,而其具体的内容,也就是数值也没有发生变化。

数据压缩分有损和无损两种。无损压缩在解压后数据不会有损失,而有损压缩在解压后数据会有损失。像我们日常使用的 Zip 压缩就是一种无损压缩,解压后的文件和压缩前一摸一样;而 JPEG 压缩就是一种对图片文件的有损压缩,压缩后图片的精细度会有明显下降,但文件体积会减少很多。

其实我们平常使用的 doc, png, jpg, txt 都是「压缩文件」,只是压缩和解压的过程在你保存文件和打开文件那一刻就已经完成了。而 zip, rar, 7z 这类文件需要我们自己去压缩和解压。

3. 压缩有什么用

数据压缩除了可以减小文件的存储占用,还能方便我们传输文件。比如你可以用压缩软件,将多个图片和多个文档压缩到同一个 Zip 文件中,这样你和你就只要传一个压缩包给你的同事,而不需要传好几个文件了。

此外,你还可以对压缩的文件进行加密。等于给你的压缩文件加了一道「防盗锁」。只有知道密码的人才能解压你的文件。zip, rar 和 7z 都支持加密压缩。

如果你下载过「开心版」的游戏,就应该见过「分卷压缩」这个玩意儿。简言之就是将文件压缩之后分成大小差不多的几块,分别存放到多个压缩文件中。一般这样的压缩文件后面都会写上「part XX」,代表是第几个分卷。这样的好处就是,如果你分享了一个非常大的文件,而你的同事由于「家境贫寒」,家里网速特别慢,没法一次性将你发的大文件下载下来。这时候你就可以将这个文件压缩成多个分卷,这样你的同事就可以一个一个分卷的下载,最终解压时也能还原出原文件。

4. 如何压缩和解压缩

关键问题来了,如何压缩和解压缩呢?其实很简单。不论是压缩和解压缩,我们都需要用到压缩软件。你并不需要知道这些软件的具体原理是什么,只要会用就行了。

这类软件我推荐开源免费的 7Zip,它的官网是 https://www.7-zip.org。别去百度里面搜,因为你搜到的肯定是假的。你可能听说过 WinRAR,但是那是收费软件,而且支持的格式有限。

进入 7Zip 官网之后,点击右侧的 Download跳转到下载页面、选择适合自己系统的版本下载即可。

✅ 注意:版本号一般选择最新,系统版本选择 64-bit Windows x64 即可,

这个软件的安装没有什么注意事项,只需要一直点确认和下一步就行了。

下面就以压缩和解压缩 notepad 的文件夹为例来示范一下如何使用 7zip。虽然这个软件的界面是英文的,但操作起来并不难。右键 notepad 的文件夹,选择 7zip 菜单下的 add to … zip 即可将文件夹压缩成一个 zip 文件。


完成之后你就能得到一个与原本文件夹同名的 zip 文件。

要解压也很简单。右键压缩文件,选择 7zip 菜单下的 extract to … 即可解压。

5. 小结

所以这样一看,压缩和解压歧视也没什么难度。只要找到合适的软件就行了。如果你觉得 7Zip 还是太难了,那就只能去用 2345 好压了(反正我不用)。