是否有官方(或常见的)用于压缩文件的文件扩展名或后缀?

8

压缩文件通常以.gz作为结尾。但是,对于deflated文件是否有官方的(或通用的)文件扩展名或后缀?我没有找到任何信息。


由于这只是例如 ZIP 所使用的一种方法(如果我没有搞错的话),因此我会使用 .zip 作为扩展名。 - user330315
1
不,除非文件是ZIP格式的,否则不要使用.zip。这并不是帖子中讨论的内容。 - Mark Adler
1个回答

11

针对 zlib-wrapped (RFC-1950)deflate-compressed (RFC-1951)文件定义了一个扩展名为“.zz”的扩展。就我所知,没有为原始deflate-compressed数据(RFC-1951)定义扩展名。通常情况下,原始deflate数据仅在其他数据流或文件格式的上下文中使用。

Java文档并不清楚会产生什么,但看起来默认的Deflater会产生zlib-wrapped deflate数据,除非nowrap boolean为true,在这种情况下将生成原始deflate-compressed数据。


更多背景

有趣的是,人们倾向于认为任何可以读取其中之一的东西都可以解释所有这些格式,只因为核心压缩格式(deflate)相同。实际并非如此。gzip实用程序可以读取gzip-wrapped deflate数据或单个条目zip文件(以及一些与deflate无关的旧格式),但不能读取zlib或原始deflate。

Info-ZIP的unzip只能读取ZIP格式,该格式可以包括作为压缩数据格式之一的deflate数据(还有其他格式)。zlib是一个库,而不是实用程序,并提供直接支持读写zlib格式(一个非常紧凑的包装器,包裹deflate数据)、gzip格式和没有包装器的原始deflate格式。其他实用程序可以使用后者来处理其他格式(如ZIP)中的deflate数据。

您可以使用zlib编写自己的压缩程序和解压程序,以处理压缩和解压缩(以及计算)的重活,但您必须处理ZIP格式标题、尾随区和中央字典的所有复杂性。pigz可以读取gzip、单个条目zip文件和zlib格式(以及旧的compress格式)。


这个说法不正确: gzip工具只能读取gzip封装的deflate数据. 根据gzip man的说明:gunzip目前可以解压gzip、zip、compress、compress -H或pack创建的文件。 - Oleg Mikheev
是的,没错。gunzip将解压缩一个单个条目的zip文件。它还包含一些用于过时格式(compress和pack)的遗留解压缩器。 - Mark Adler
你有".zz"扩展名的参考资料吗? - Christian Schlichtherle
https://fileinfo.com/extension/zz#pigz_zlib_compressed_file - Mark Adler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接