跳转至内容

lrzip

来自 ArchWiki

Long Range ZIP (或 Lzma RZIP) 是一个为大型文件优化的压缩程序,主要包含一个用于长距离冗余缩减的扩展 rzip 步骤和一个普通压缩器(LZMA、LZO、gzip、bzip2 或 ZPAQ)步骤。文件越大、内存越多,其压缩优势就越明显,尤其是在文件大于 100MB 时。其优势可以被选择为大小(比 bzip2 小得多)或速度(比 bzip2 快得多)。

安装

安装 lrzip 包。

用法

压缩

压缩目录(递归)需要 lrztar,它首先将目录打包,然后像 tar 在用户使用 gzipxz 压缩时一样压缩单个文件(分别为 tar zcf ...tar Jcz ...)。请注意,压缩算法是在 rzip 类预压缩归档后使用的,而不是例如普通“LZMA 压缩归档”中的纯 LZMA 压缩。

这将从名为 foo 的目录创建一个 LZMA 压缩的归档文件 foo.tar.lrz

$ lrztar foo

这将从名为 bar 的文件创建一个 LZMA 压缩的归档文件 bar.lrz

$ lrzip bar

为了极致压缩,请添加 -z 开关,它启用 ZPAQ,但比 LZMA 耗时很多

$ lrztar -z foo

为了极快的压缩和解压缩速度,请使用 -l 开关进行 LZO 压缩

$ lrzip -l bar

默认情况下,lrzip 可以使用您所有可用的内存大小来记住文件块历史。如果您要压缩的文件比这还大,请添加 -U 开关启用磁盘映射。请注意,这将明显变慢,但可以处理任何大小的文件。

$ lrzip -U bar

解压缩

要完全提取一个归档目录

$ lrzuntar foo.tar.lrz

要将 bar.lrz 解压缩为 bar

$ lrunzip bar.lrz

详细信息

Lrzip 使用 rzip 的一个扩展版本,它首先执行一个长距离冗余缩减。lrzip 的修改使其能够根据内存大小进行扩展。然后数据会被

  1. 由 LZMA 压缩(默认),可以获得出色的压缩效果,速度约为 bzip2 压缩的两倍。
  2. 由其他几个出于不同原因选择的压缩器进行压缩,按实用性可能性排序。
    1. ZPAQ:极致压缩,比 LZMA 小 20%,但压缩和解压缩速度极慢。
    2. LZO:极快的压缩和解压缩速度,在大多数机器上压缩速度比磁盘写入快,使其与简单地复制大文件一样快(甚至更快)。
    3. GZIP:速度几乎与 LZO 一样快,但压缩效果更好。
    4. BZIP2:一种事实上的 Linux 标准,但处于 LZMA 和 gzip 之间的中间地带,不偏不倚。
  3. 不压缩并进行 rzip 准备。这种形式在大小和速度上都能大幅提高后续文件上的任何压缩性能(由于 rzip 准备合并相似的可压缩数据块并创建更小的文件的性质)。通过“提高”性能,要么在轻微损害压缩效果的情况下加速非常慢的压缩器,要么大大提高简单压缩算法的压缩率。

主要缺点是

  1. 主要的 lrzip 应用程序只能处理单个文件,因此需要 lrztar 包装器来模拟一个完整的归档工具。
  2. 它需要大量内存才能获得最佳性能(内存大小与要压缩的数据大小相同;但请参见下面的滑动 mmap),并且内存少于 256MB 时(对于压缩而言)实际上是不可用的。解压缩需要的内存较少,可以在内存较小的机器上工作。有时可能需要在这些内存较小的机器上启用交换空间,以便操作系统能够正常运行。
  3. STDIN/STDOUT 在压缩和解压缩时都可以正常工作,但以这种方式压缩的较大文件最终效率会较低。

lrzip 的独特之处在于,它始终试图充分利用您系统中的可用内存以获得最大效益。默认情况下,它通过选择最大的窗口大小来实现这一点,而不耗尽内存。它还有一个独特的“滑动 mmap”功能,即使文件很大,也可以使用大于内存大小的压缩窗口。它通过(使用 -U 选项)实现这一点,即实现一个正常的、一个大的 mmap 缓冲区,以及一个小的移动缓冲区来跟踪当前正在检查的文件部分,从而模拟一个大得多的单个 mmapped 缓冲区。不幸的是,此模式可能慢很多倍。

参见

© . This site is unofficial and not affiliated with Arch Linux.

Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.