为什么我应该使用 tar.xz 而不是 tar.gz?xz 是一种无损数据压缩程序和文件格式

Jos*_*ine 14 rhel tar archive compression gzip

今天我有生以来第一次看到tar.xz下载。我在互联网上搜索并找到了维基百科文章(xzXZ Utils

关于用户的有趣报价 xz

xz 在 GNU coreutils 项目、[7] Debian 系列系统 deb(文件格式)、openSUSE、[8] Fedora、[9] Arch Linux、[10] Slackware、[11] FreeBSD、[ 12] Gentoo,[13] GNOME,[14] 和 TeX Live,[15] 以及作为压缩已编译 Linux 内核的选项。 [16] 2013 年 3 月,kernel.org 宣布使用 xz 作为分发内核存档文件的默认压缩文件格式。 [17]

我总是使用tar.gz. 何时以及为什么应该使用tar.xz?用例是什么?

我在第一次评论后发现已经发布了一个类似的问题。我经常压缩 mongodump/mongoexport (BSON/JSON) 和 mysqldump (SQL 文本)。将 tar.xz 用于这些备份是否有优势?

Kus*_*nda 15

gzipxz使用两种不同的算法,因此它们的性能不同,无论是实现的压缩级别还是压缩或解压缩时消耗的资源量。

一般xz达到较高的压缩比,但需要更多的内存和时间。

我个人xz用于归档数据;我需要长时间存放的大文件。我使用gzip其他方式,因为它通常更快。

对它们都进行测试,看看它们在您的平均tar(或其他)文件上表现如何。


pol*_*mon 5

xz 近年来,在包管理方面已经成为一种标准。

LZMA2 压缩算法xz使用,对于文本(和“类似文本”)数据非常有效。我个人将它用于几乎任何计算编码速度不是问题的事情xz解压缩比压缩快得多,它实际上是其设计目标之一)。

因此,它非常适合存档或备份(一般来说,文件解压缩很多,但数据并非一直压缩或更改等)。对于流压缩来说,这不是一个很好的决定 - 至少不是经常这样,因为 LZMA2 在压缩时并不完全占用资源。

但我想评论你的另一句话:“应该”。您应该不应该使用什么,取决于您需要数据的用途。尽管xzLZMA2 已经存在多年,但gz出于兼容性原因,人们仍然考虑将其压缩为后备。事情是这样的TracCGT文件的报价.tar.gz.7z.tar.xz。有了这个.tar.gz选项,因为它已经“永远存在”,而且它是任何类型的设备上的一个很好的后备措施,无论多么小或多旧。

举个反例,lzop是一种快速且节省资源的压缩机,通常用于航天器,但效率不高。不过,我不能说它没有被广泛使用。它通常用于以很少的功率和计算空间快速压缩某些内容更为重要的系统。

因此,您应该或不应该使用的是对您和与您的数据进行交互的人最有意义的东西。


最近我想到的一件事是:man页面通常用gzip. /usr/share/man/man1/例如,如果您查看,您会看到很多类似于 的文件mv.1.gz,如果不是所有文件都被压缩的话。现在,它会可以说是意义的开关.xz,因为更好的压缩的文件,但空间收益是微乎其微的,相比于从开沟的负面影响.gz.xz。原因是几乎通用的兼容性。即使.gz直接在Vim 中打开压缩文件也能正常工作,并充当透明压缩。