漫谈常见的文件压缩格式与“食用方式”
▲ ▷ ▼ ◁
何为压缩文件?其有何作用?如何快速上手?个人相信现今大部分计算机用户都有着自己的一套理解标准和践行方式,而且我也有理由相信,你至少不会对Zip格式的压缩文件太过陌生,因为它是那么的常见,接触和使用到的次数自然也多于其他格式的压缩文件。当然在绝大部分情况下,普通计算机用户是不会也不必去了解其背后的压缩算法、编码内容,所以做到熟练地使用这类格式和文件本身即可,享受开袋即食的便利。下面我会简要地列举一些常见地文件压缩格式,以及在Windows平台上通常意义上的“食用方式”,但分卷压缩技术不在此讨论范围,请另行参考这篇专栏:
◔ ◑ ◐ ◕
我们通常意义上所理解的压缩格式,在大多数情况下指代的是压缩文件的后缀名,例如.zip .rar .7z之类的。不过我们仍需要清楚的是,压缩格式的本质在于其文件压缩算法和编码形式的不同,并且文件解压缩工具也不会过多理会后缀名所造成处理方式的差异,事实上这类程序会尝试解析压缩文档中关键性的编码标识和结构,从而选择正确的解压缩算法处理用户传入的数据,如果你熟悉GNU/Linux这类操作系统的话,你也许能较为轻松地理解上述概念。文件后缀名最主要的作用是便于用户(人)的理解,通过文件格式关联赋予文件相应的图标标识与描述,增强文件列表的可读性,方便用户选择合适的工具去处理文件,所以在一般情况下,可以暂时将文件后缀名与文件格式等同看待。
这里按照平台易用性、流行度依次列举出常见的文件压缩格式(以文件后缀名的形式表出):
⑨ ◉ ★ @
到这里你已经对常见的文件压缩格式有了初步的认知,足以对一般的压缩文件混个眼熟,所以趁热打铁、继续推进,下面简单介绍多重压缩文件以及打包压缩文件形式。最常见的多重压缩形式就是套娃,压缩文件中套压缩文件,例如最外层的压缩格式可以是rar,解压之后得到7z的压缩文件,再次解压之后得到zip的压缩文件(估计也没人会这么无聊吧);另外一类多重压缩体现在文件后缀名上,例如.7z.xz或者.rar.gz,原理和上面的差不多,一般来说也是可以被解压工具直接打开操作的,逐层解压即可,例如由.7z.xz文件解压得到.7z文件,再次解压得到原始归档文件。另外一种是打包压缩文件,顾名思义这类文件通常是经过打包归档之后再进行压缩的文件,格式有.tar.gz、.tgz、.tar.bz2或者.tar.xz,常见于类Unix平台,在Windows平台上的思路大差不差,逐层解压,最后一步操作是解包,解压工具通常都能很好地帮用户完成处理。简单地提一下在类Unix平台中如何操作这类打包压缩文件,就只是给出命令:
不过正如开头所提到的那样,文件后缀名远非重点所在,重点在于文件压缩格式能否被你的解压缩工具所支持,正确识别和操作,即使你将一个zip编码格式的压缩文件后缀名改为.rar,它依旧会被常见的解压缩工具正确识别、打开以及提取文件内容,仅仅是要求工具本身支持这类压缩算法和编码结构。所以,当下次遇到以未知后缀名标记的压缩文件,或是出于某种原因需要修改后缀名的资源文件时(举个例子,.zip改.jpg,.r删ar),不妨尝试着直接用解压缩工打开。反过来说,如果重点在于后缀名,那么我完全可以用.rar后缀表示一个zip文件,用.zip后缀表示一个7zip文件(这何尝不是一种ntr行为),甚至可以“自创”一种以.dd为后缀名的文件,只需要随便将一个现有的压缩文件后缀名改成.dd,做到自欺欺人罢了。但是说到底文件后缀名是方便用户阅读的,因此命名的规范性、无二义性也很重要。
另外再介绍一下自解压文件,有的时候我们获取到的资源文件是一类以.exe为后缀名的自解压文件(Windows平台),同样是作为压缩文件的一种,优点是可以在不借助外界任何压缩工具的条件下,双击文件就可以自动执行解压缩的任务。与普通压缩文件相比,自解压的压缩文件体积要略微大一些(因为内置了最小化的自解压程序模块)。个人认为资源分享者考虑是比较周全的,Windows平台下相比于纠结文件压缩格式和后缀名,倒不如这种傻瓜式操作来的好,而且即使接收方没有现成的解压缩工具也能够轻松获取到文件内容。一般来说,各类解压缩工具都能够生成特定的压缩格式的自解压文件,且往往带有各自生成工具的图标(可通过特定工具修改定制),WinRAR可以生成rar压缩格式的自解压文件,7-Zip可以生成7z格式的自解压文件。当然如果你愿意的话,依旧是可以通过解压缩工具打开并查看其中的内容,文件右键找找看。
补充说明,这种自解压文件多见于单个压缩文件,在分卷压缩的场景下比较少见,但确实可行;如果在分卷压缩的条件下选择生成自解压文件,相比于普通的分卷压缩会多余生成一个自解压用的.exe文件,体积很小,仅包含最小化解压缩程序模块,双击即可完成解压;或者忽略这个可执行文件,直接按照处理普通分卷压缩文件的方式,去处理分卷文件同样也是可以完成解压的,需要借助外界解压缩工具。个人认为自解压技术更加适合分卷的场景,其中一个原因是分卷压缩上手略微有点难度,这种情况下简单地双击自解压更加适合。
至于选择什么样的解压缩软件或工具帮助我们优化日常使用体验,个人认为只需要考虑一个原则:自己怎么方便怎么来。没有所谓的最优解,只有最适合自己的解,没必要为了一个生产工具给自己画地为牢(已经到了机器、计算机程序可以反过来控制人类的地步了吗?真令人唏嘘不已),一切都是为了提高生产力。论颜值、密码管理、查看压缩包图和实用功能可以自行探索bandizip、360压缩等一类工具;论专业性、成熟度和技术支持可以自行探索WinRAR、WinZip之类;论自由开源、极致性能和专一程度可以自行探索7-Zip、PeaZip等等。
最后仅根据我个人经验,针对Windows平台,从流行度、易用程度和普及率等方面出发,给出一些国内使用的文件压缩格式的意见,特殊场景请特殊考虑:
压缩格式:zip > rar > 7z;其他格式请谨慎考虑
文件形式:普通压缩文件 > 自解压文件 > 普通分卷压缩文件;出于某种原因,自解压文件并不像你认为的那样为大众所熟知(东西确实是好东西),分卷压缩文件就更不用说了,所以在正式场景下慎用

参考资料:
https://www.php.cn/faq/467093.html (压缩格式是什么?)
https://blog.csdn.net/fmy_happy/article/details/83624252 (漫谈压缩格式)
https://www.zhihu.com/question/307387325 (常见的文件压缩格式各有什么优缺点?)
https://baike.baidu.com/item/%E8%87%AA%E8%A7%A3%E5%8E%8B%E6%96%87%E4%BB%B6/942070 (自解压文件)


