提取 BSD TAR 文件

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

全部本地运行

我们的转换器在您的浏览器中运行,所以我们永远看不到您的数据。

闪电般快速

无需上传文件到服务器,转换立即开始。

默认安全

与其他转换器不同,您的文件永远不会上传给我们。

什么是BSD TAR格式?

BSD tar

ar SVR4 归档格式是一种用于将文件集合存储在单个归档文件中的文件格式。它作为 System V Release 4 (SVR4) UNIX 操作系统的一部分在 20 世纪 80 年代末引入。ar 格式至今仍广泛用于许多 UNIX 和 Linux 系统,用于打包软件库、对象文件和其他相关文件集合。

ar 归档由一个全局头后跟一系列归档成员组成。每个归档成员表示存储在归档中的一个文件。全局头是一个简单的 8 字节结构,它将文件标识为 ar 归档并指定到第一个归档成员的偏移量。

全局头具有以下格式: - 字节 0-1:魔术字符串“!<arch>\n”,它将文件标识为 ar 归档 - 字节 2-3:四个 ASCII 字符“`\”,后跟两个与平台相关的填充字节,使头部的长度恰好为 8 字节

在全局头之后是各个归档成员。每个归档成员由一个头组成,紧跟其后的是成员的内容。每个成员的头具有以下格式: - 字节 0-15:文件名,左对齐并以 null 填充 - 字节 16-27:十进制文件修改时间戳 - 字节 28-33:十进制所有者 ID - 字节 34-39:十进制组 ID - 字节 40-47:八进制文件模式 - 字节 48-57:十进制文件大小(以字节为单位) - 字节 58-59:字符串“`\”

关于成员头的一些重要事项: - 文件名限制为 16 个字符。对于较长的名称,可以使用特殊的 System V 扩展名成员。 - 时间戳、所有者/组 ID 和文件模式采用 ASCII 十进制或八进制表示。如果它们短于其字段宽度,则必须以 null 结尾。 - 文件大小不包括头本身的大小。 - 如果每个头字段短于其固定宽度,则以空格或 null 字节结尾。字段之间没有对齐填充。

每个归档成员的内容紧跟其 60 字节头,没有额外的填充。文件数据与原始文件中显示的一模一样,没有编码或压缩。

特殊的归档成员可以出现在 ar 归档中以提供额外的元数据: - “// ”:符号表成员包含用于链接对象文件的符号名称查找表。它具有特殊名称“// ”(斜杠斜杠空格)。 - “/ ”:扩展名表用于长度超过 16 个字节的文件名。它以斜杠命名,后跟足够的空间以填充到 16 个字节。扩展名存储为该成员中的 null 结尾字符串列表。

要解析 ar 归档,程序首先会读取 8 字节全局头并验证归档魔术字符串。然后,它会扫描归档数据,读取每个成员的 60 字节头。文件大小字段告诉程序在继续下一个头之前,要读取该成员内容的字节数。

在创建 ar 归档时,程序会写出全局头,然后写出要包含的每个归档成员的头和内容。如果使用扩展名,则必须添加扩展名表成员。如果包含符号表,则通常将其作为全局头之后的第一个成员添加。

ar 格式相当简单,但有一些限制。它不支持压缩、加密或 tar 或 ZIP 等更现代格式中发现的其他高级功能。16 个字符的名称限制很严格,扩展名方案有些笨拙。尽管如此,ar 仍然因其简单性、兼容性和适用于将相关文件(如目标代码模块)打包到库文件中的特性而被广泛使用。

尽管历史悠久,但 ar 格式多年来一直持续使用并得到了一些改进: - BSD 变体已扩展 ar,支持没有扩展名表和更大文件大小的更长名称。 - GNU ar 程序已成为事实上的标准实现,并在保持兼容性的同时支持各种扩展。 - ar 格式是许多编译器和链接器使用的对象文件的必需输出格式。

总之,ar SVR4 归档格式是一种古老但仍然广泛使用的规范,用于将文件集合捆绑到一个更大的文件中。它的简单性和兼容性促成了它的长寿。虽然更高级的格式通常更适合于通用归档和压缩,但 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。这些工具可以从压缩格式提取原始文件。