压缩包¶
压缩包是一种特殊的文件格式,其主要作用是将一个或多个文件/文件夹进行打包(归档)并应用压缩算法处理,目的是减少其总体占用的存储空间。常见的压缩包格式包括 ZIP、RAR、7z 等。
为什么要将文件进行压缩
- 节省存储空间: 通过识别并消除文件中的冗余信息(如重复的字符串、模式),显著减小文件体积,便于存储和备份。
- 文件归档: 将众多零散的文件或整个目录结构打包成一个单一文件,方便管理、传输和共享。用户无需逐个处理大量小文件。
- 文件加密与保护: 大多数压缩软件支持使用密码对压缩包进行加密(如 AES 加密),保护文件内容不被未授权访问。
- 分卷压缩: 将大型压缩包分割成多个指定大小的较小文件(分卷),便于通过容量受限的媒介(如早期软盘、邮件附件限制)传输。
- 文件完整性校验: 部分压缩格式(如 RAR, 7z)支持添加恢复记录或使用更健壮的校验和,有助于在数据损坏时尝试修复或检测传输错误。
常见的解压缩软件¶
软件名称 | 特点 | 支持的主要格式 (创建/解压) | 链接/备注 |
---|---|---|---|
Bandizip | 界面现代,功能强大且免费(标准版有广告,付费专业版无广告),支持超快解压、密码管理、修复损坏压缩包。 | 极广: Zip, 7z, RAR, ALZ, EGG, TAR, ISO, GZ, XZ, LZH, ARJ, CAB, VHD... | https://www.bandisoft.com/bandizip/ |
7-Zip | 开源免费,无广告,压缩率高(尤其 7z 格式),集成到右键菜单方便。 | 创建: 7z, XZ, BZIP2, GZIP, TAR, ZIP, WIM 解压: RAR, ARJ, CAB, CHM, ISO, LZH... |
https://www.7-zip.org/ |
WinRAR | 商业软件(有免费试用版,过期后仍可免费使用解压功能),RAR 格式的官方支持者,功能全面稳定。 | 创建: RAR, RAR5, ZIP 解压: 几乎所有常见格式 |
https://www.win-rar.com/ |
Windows 内置支持 | Win10/11 原生支持打开 .zip 文件(如同文件夹),也可通过“发送到 > 压缩文件夹”创建 .zip 。 |
仅支持 ZIP 格式 (创建和解压) | 无需额外安装,但功能非常基础 |
PeaZip | 开源免费,跨平台(Windows, Linux),支持众多格式,界面可配置性强。 | 极广: 7z, ZIP, TAR, GZ, BZ2, XZ, RAR, ISO, DEB, RPM... | https://peazip.github.io/ |
NanaZip | 基于 7-Zip 的现代开源分支,适配 Windows 11 风格,支持上下文菜单预览等新特性。 | 同 7-Zip | https://github.com/M2Team/NanaZip |
重要说明:
.rar
格式专利: RAR 压缩算法和格式由 Alexander Roshal 开发,其所有权和专利属于 RARLAB(WinRAR 的开发商)。因此:- WinRAR 是唯一可以官方合法创建
.rar
文件的软件(需购买或遵守其试用条款)。 - 其他软件(如 7-Zip, Bandizip, PeaZip)可以解压
.rar
文件,这通常被认为是合法的,因为它们使用了开源的 UnRAR 库(由 RARLAB 授权允许用于解压)。 - 没有 RARLAB 的授权,其他软件不能合法地创建
.rar
文件。
- WinRAR 是唯一可以官方合法创建
- 选择建议:
- 追求免费开源高压缩率: 7-Zip 或 PeaZip。
- 追求易用性和功能全面(含 RAR 创建): WinRAR (需接受其商业模式)。
- 追求现代界面和速度(免费版含广告): Bandizip。
- 仅需处理 ZIP: Windows 自带功能足够。
- 安全警告:
- 警惕来源不明的压缩包: 压缩包是恶意软件(病毒、勒索软件)传播的常见载体。务必使用安全软件扫描,并从可信来源获取文件。
- “压缩包炸弹”: 指故意构造的、解压后体积极其巨大(如 TB 级)的小压缩包(几 KB),旨在耗尽系统资源或瘫痪扫描软件。解压前注意文件大小是否合理。
- 加密压缩包的安全性: 使用强密码(长、复杂、唯一)。弱密码容易被暴力破解。注意,文件名在部分格式下即使加密也可能可见。
常见的压缩包格式¶
压缩包格式主要分为两大类:
类型 | 特点 | 常见格式举例 | 典型用途 |
---|---|---|---|
无损压缩 | 压缩和解压过程不丢失任何原始数据,信息可完美还原。 | .zip , .rar , .7z , .tar , .gz , .bz2 , .jar , .iso (通常) |
文档、程序、源代码、重要数据备份、软件分发 |
有损压缩 | 通过舍弃人眼/人耳不敏感的信息来获得更高的压缩率,还原后与原始数据有差异。 | .jpg /.jpeg , .mp3 , .mp4 , .avi , .rmvb |
图片、音乐、视频等多媒体文件(牺牲部分质量换取空间) |
说明:
.tar
(Tape Archive): 本身仅打包不压缩,通常与压缩程序结合使用(如.tar.gz
,.tar.bz2
,.tar.xz
)形成压缩包。在 Unix/Linux 系统中非常常见。.jar
(Java Archive): 基于 ZIP 格式,用于打包 Java 类文件、资源文件和元数据,是 Java 应用程序和库的标准分发格式。.iso
: 通常指光盘镜像文件。虽然它打包了光盘的所有内容(包括文件系统),并且常被压缩软件支持(可视为一种特殊的归档格式),但光盘镜像本身可能包含有损压缩的多媒体文件。标准的.iso
是未压缩的完整扇区拷贝。- 有损压缩格式: 严格来说,
.jpg
,.mp3
等是单一多媒体文件的压缩格式,而不是像 ZIP/RAR 那样用于打包和压缩多个任意类型文件的通用“压缩包”格式。但它们确实运用了有损压缩技术。
有损压缩与无损压缩原理简述¶
- 无损压缩:
- 原理: 利用数据的统计冗余进行压缩。常见算法如 LZ77/LZ78 (及其变种 DEFLATE - ZIP 常用)、LZMA (7z 常用)、BZIP2 等。它们通过查找并编码重复出现的字符串或序列来实现压缩。
- 结果: 解压后的数据与原始数据完全相同,比特级一致。
- 适用: 任何需要精确还原原始数据的场景,如文本、程序、数据库、配置文件、某些图像格式(PNG - 无损)等。
- 有损压缩:
- 原理: 利用人类感知(视觉、听觉)的局限性,去除信号中冗余的、不敏感或不太重要的信息。例如:
- 图像 (JPEG): 转换色彩空间(如 RGB->YCbCr),对色度信息进行下采样(人眼对亮度更敏感),应用离散余弦变换(DCT)并量化高频系数(丢弃细节)。
- 音频 (MP3): 应用心理声学模型,掩蔽掉人耳难以察觉的频段声音,并对剩余信号进行压缩。
- 视频 (MP4/H.264/H.265): 结合帧内压缩(类似 JPEG)和帧间压缩(利用连续帧之间的相似性,只存储差异信息)。
- 结果: 解压后的数据是原始数据的近似值,存在信息丢失,质量通常低于原始数据。压缩率通常远高于无损压缩。
- 适用: 对绝对精度要求不高,但对文件大小敏感的多媒体数据(照片、音乐、电影)。多次重复压缩解压会导致质量进一步下降(“代损”)。
参考¶
压缩包 : https://baike.baidu.com/item/%E5%8E%8B%E7%BC%A9%E5%8C%85/5373066 无损压缩和有损压缩的区别? : https://www.zhihu.com/question/267956200 RARLAB - WinRAR and RAR archiver : https://www.rarlab.com/ UnRAR license : https://www.rarlab.com/license.htm (关于解压 RAR 的许可)