提取 RAR 文件

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

全部本地运行

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

闪电般快速

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

默认安全

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

什么是RAR格式?

RAR 归档

SHAR(SHell ARchive)格式是一种文件归档和压缩格式,通常在 Unix 和类 Unix 操作系统上使用。它被开发为一种简单的方法,用于将多个文件和目录打包到单个归档文件中,以便于存储和传输。SHAR 格式允许对归档文件进行可选压缩,以减小生成的归档文件的总体大小。

SHAR 归档本质上是一个 shell 脚本,其中包含一系列命令,用于重新创建原始目录结构和文件。当执行 SHAR 文件时,shell 会解释这些命令并将文件解压到其原始位置。这使得 SHAR 归档易于创建和解压,而无需专门的归档工具,只要有 Unix shell 即可。

SHAR 归档的结构包括一个头文件、文件元数据和实际文件内容。头文件通常包括一个 shebang 行(例如 `#!/bin/sh`)以指定 shell 脚本的解释器,后跟任何必要的 shell 命令或变量声明。头文件还可能包括用于解压归档的注释或说明。

在头文件之后,SHAR 归档包含一系列针对每个正在归档的文件或目录的节。每个节都以有关文件的文件元数据开头,例如其名称、权限、所有权和时间戳。此元数据使用 shell 命令表示,这些命令在提取文件时设置适当的属性。

在元数据之后,文件的实际内容包含在归档中。文件内容通常使用 `uuencode` 或 `base64` 编码方案进行编码,以确保内容与 shell 脚本的基于文本的性质兼容。编码内容被分成较小的块,并作为脚本中一系列 `echo` 或 `printf` 命令打印出来。

如果 SHAR 归档包含目录,则使用 `mkdir` 命令和适当的元数据设置的组合重新创建目录结构。然后,每个目录中的文件以与上述相同的方式添加到归档中。

SHAR 归档可以选择性地包含压缩,以减小生成的文件的大小。与 SHAR 一起使用的常见压缩方法包括 `gzip`、`bzip2` 和 `compress`。压缩通常在对各个文件进行编码并将其添加到归档之前应用。当提取 SHAR 归档时,shell 脚本会自动解压缩压缩文件。

要创建 SHAR 归档,可以使用 `shar` 命令,该命令可在大多数 Unix 和类 Unix 系统上使用。创建 SHAR 归档的基本语法为:`shar [options] file1 file2 directory1 ... > archive.shar`。指定的文件和目录将包含在生成的归档文件中。

提取 SHAR 归档就像执行归档中包含的 shell 脚本一样简单。可以通过使用 `chmod` 命令使 SHAR 文件可执行,然后将其作为脚本运行来完成此操作:`chmod +x archive.shar && ./archive.shar`。shell 将解释脚本中的命令并重新创建原始文件和目录。

SHAR 格式的一个优点是其简单性和可移植性。可以在任何具有 Unix shell 的系统上创建和提取 SHAR 归档,而无需其他软件。但是,与 `tar` 或 `zip` 等更高级的归档格式相比,SHAR 格式有一些限制。SHAR 归档缺少诸如对各个文件的随机访问、完整性检查或内置加密之类的功能。

尽管存在这些限制,但 SHAR 格式在某些情况下仍然有用,尤其是在处理基于 Unix 的系统或需要简单性时。它提供了一种直接的方法,可以将文件打包并作为单个自解压归档进行分发。

总之,SHAR 归档格式是一种简单且可移植的方法,可以将多个文件和目录打包到单个 shell 脚本归档中。它允许进行可选压缩,并且可以使用标准 Unix shell 命令轻松创建和提取。虽然与其他归档格式相比缺乏高级功能,但 SHAR 仍然是 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。这些工具可以从压缩格式提取原始文件。