提取 PKZ 文件

无限制 作业。文件大小达到 2.5GB。永久免费。

私密和安全

一切都在您的浏览器中进行。您的文件绝不接触我们的服务器。

极速

无需上传,无需等待。在您拖放文件的瞬间即可转换。

完全免费

无需帐户。无隐藏费用。无文件大小限制花招。

什么是PKZ格式?

PKZ(PKZip)

POSIX 归档格式,也称为“ar”格式,是一种用于在类 Unix 操作系统上创建和管理库归档的文件格式。此格式已由 IEEE 在 POSIX.1-1988 规范中标准化,并且自此在各种平台上得到广泛采用。ar 格式允许将多个文件捆绑到一个文件中,以便于存储、分发和管理。

POSIX 归档的结构由一个全局头后跟一系列归档成员组成。每个成员代表已添加到归档中的一个文件。全局头是一个简单的 ASCII 字符串,它将文件标识为 ar 归档。它由字符“`!<arch> `”组成,其中“` `”表示换行符。此头始终存在于归档文件的开头。

在全局头之后,归档包含一系列文件成员。每个成员由文件头和文件数据本身组成。文件头是一个固定大小的结构,它包含有关文件元数据的信息,例如其名称、修改时间戳、所有者和组 ID、文件模式和大小。该头用空格填充以保持 60 字节的固定大小。

文件头以文件名开头,该文件名存储为以 null 结尾的 ASCII 字符串。文件名限制为 16 个字符,如果实际文件名较长,则将其截断。如果文件名短于 16 个字符,则用空格填充。在文件名之后,头包含文件修改时间戳,该时间戳存储为十进制 ASCII 字符串。时间戳表示自 Unix 纪元(1970 年 1 月 1 日)以来的秒数。

接下来,文件头包括文件的所有者和组 ID,它们存储为十进制 ASCII 字符串。这些 ID 用于文件权限和所有权管理。文件模式也存储在头中,作为八进制 ASCII 字符串,表示文件的权限和类型。该模式指示文件是常规文件、目录、符号链接还是具有任何特殊权限。

文件的大小存储在头中,作为十进制 ASCII 字符串,表示头之后的文件数据中的字节数。如果文件大小不是偶数,则向文件数据添加一个额外的填充字节以确保正确对齐。

在文件头之后,实际文件数据存储在归档中。数据按原样写入,没有任何额外的格式化或压缩。如果文件大小为奇数,则添加一个额外的填充字节以保持对齐。

创建 ar 归档的过程涉及将每个成员文件的文件头和数据连接到一个归档文件中。ar 实用程序(通常在类 Unix 系统上找到)用于创建、修改和从 ar 归档中提取文件。在创建归档时,ar 实用程序添加全局头,后跟每个成员文件的文件头和数据。

从 ar 归档中提取文件涉及读取全局头以验证归档格式,然后扫描归档以找到所需的成员文件。ar 实用程序读取文件头以确定归档中的文件名、大小和偏移量。然后,它根据存储在头中的大小和位置信息提取文件数据。

ar 格式的主要用例之一是创建静态库归档。静态库是对象文件集合,在编译时直接链接到可执行文件中。ar 格式允许将多个对象文件捆绑到一个库文件中,然后可以将其与其他对象文件或库链接以创建最终的可执行文件。

ar 格式还支持创建稀疏归档,这些归档仅包含对外部文件的引用,而不是文件数据本身。稀疏归档对于减小归档文件的大小以及允许更有效地存储和分发大量文件集合非常有用。

虽然 ar 格式被广泛使用和支持,但它有一些限制。固定大小的文件头限制了文件名长度和可以存储在归档中的最大文件大小。此外,ar 格式不提供任何内置压缩或加密,这对于某些用例可能是必需的。

尽管存在这些限制,POSIX 归档格式仍然是捆绑和管理类 Unix 系统上的文件集合的一种简单而有效的方法。它的标准化和广泛采用使其成为创建静态库、分发软件包和归档数据的可靠选择。

总之,POSIX 归档格式是一种用于在类 Unix 操作系统上创建和管理库归档的文件格式。它由一个全局头后跟一系列文件成员组成,每个成员包含一个文件头和文件数据。ar 实用程序用于创建、修改和从 ar 归档中提取文件,并且该格式通常用于创建静态库归档和捆绑文件集合。虽然它有一些限制,但 ar 格式仍然是管理类 Unix 系统上文件的简单且广泛支持的方法。

文件压缩通过减少冗余,让相同的信息占用更少的比特。可压缩的上限受信息论约束:对于无损压缩,上界是信源熵(参见香农的信源编码定理及其 1948 年的原始论文《通信的数学理论》)。对于有损压缩,码率与感知质量之间的权衡由率失真理论描述。

两大支柱:建模与编码

大多数压缩器分两步。首先,模型预测或揭示数据中的结构。然后,编码器把这些预测变成近乎最优的比特模式。一个经典的建模家族是 Lempel–Ziv:LZ77 (1977)和 LZ78 (1978) 会检测重复子串并输出引用而不是原始字节。在编码端,霍夫曼编码(见原始论文1952)会为更常见的符号分配更短的代码。算术编码范围编码能更贴近熵极限,而现代的非对称数值系统(ANS)用查表实现获得相似的压缩率。

常见格式的实际做法

DEFLATE(被 gzipzlibZIP 采用)结合了 LZ77 和霍夫曼编码。其规范完全公开:DEFLATERFC 1951、zlib 封装RFC 1950以及 gzip 文件格式RFC 1952。Gzip 面向流式传输并明确不提供随机访问。PNG 图像标准化将 DEFLATE 作为唯一的压缩方法(窗口最多 32 KiB),可见 PNG 规范“Compression method 0… deflate/inflate… at most 32768 bytes”W3C/ISO PNG 第二版

Zstandard (zstd): 面向高压缩率与快速解压的通用压缩器。格式记录在RFC 8878(还有HTML 镜像)以及 GitHub 上的参考规范文档。与 gzip 类似,基本帧不追求随机访问。zstd 的拿手好戏是字典:从语料中抽取的小样本能显著改善大量小文件或相似文件的压缩(参见python-zstandard 字典文档Nigel Tao 的示例)。各实现同时支持“无结构”和“有结构”字典(讨论)

Brotli: 为网页内容(例如 WOFF2 字体、HTTP)优化,混合静态字典与类似 DEFLATE 的 LZ+熵编码核心。规范见RFC 7932,其中也指出滑动窗口大小为 2WBITS-16,WBITS 取值 [10, 24](1 KiB-16 B 到 16 MiB-16 B),并且不尝试随机访问。Brotli 常在网页文本上优于 gzip,同时保持快速解码。

ZIP 容器: ZIP 是一种文件归档格式,可存储使用多种压缩算法(deflate、store、zstd 等)的条目。事实标准是 PKWARE 的 APPNOTE(参见APPNOTE 门户托管副本以及美国国会图书馆的概览ZIP File Format (PKWARE)/ZIP 6.3.3)。

常见问题解答

什么是文件压缩?

文件压缩是一种减小文件或文件集大小的过程,通常用于节省存储空间或加速网络传输。

文件压缩是如何工作的?

文件压缩通过识别和删除数据中的冗余来工作。它使用算法在更小的空间中编码原始数据。

文件压缩有哪些类型?

文件压缩的两种主要类型是无损压缩和有损压缩。无损压缩允许完美恢复原始文件,而有损压缩则以损失部分数据质量为代价,实现更大的大小减小。

文件压缩工具的例子是什么?

文件压缩工具的一个流行例子是WinZip,它支持包括ZIP和RAR在内的多种压缩格式。

文件压缩会影响文件的质量吗?

对于无损压缩,质量保持不变。然而,对于有损压缩,由于它消除了较不重要的数据以更大程度地减小文件大小,因此可能会有明显的质量下降。

文件压缩安全吗?

是的,就数据完整性而言,文件压缩是安全的,尤其是无损压缩。然而,像任何文件一样,压缩的文件可能会被恶意软件或病毒攻击,因此总是必要的有安装可靠的安全软件。

哪些类型的文件可以被压缩?

几乎所有类型的文件都可以被压缩,包括文本文件、图像、音频、视频和软件文件。然而,可达到的压缩水平可以在文件类型之间大大变化。

ZIP文件是什么意思?

ZIP文件是一种使用无损压缩来减小一个或多个文件大小的文件格式。ZIP文件中的多个文件有效地被捆绑在一起成为一个单一的文件,这也使得分享变得更容易。

我可以压缩一个已经压缩的文件吗?

技术上,是的,尽管额外的减小大小可能是微不足道的甚至适得其反。压缩一个已经压缩的文件有时可能会增加它的大小,由于压缩算法添加的元数据。

我如何解压文件?

要解压文件,你通常需要一个解压或解压缩工具,如WinZip或7-Zip。这些工具可以从压缩格式提取原始文件。