Compression tar.Z文件格式、结构、标题

Compression tar.Z文件格式、结构、标题,compression,tar,lzw,Compression,Tar,Lzw,我正在试图弄清楚的文件布局 tar.Z文件。(所谓的.taz文件.compressed tar文件) 可以使用tar-Z选项或 使用unix压缩实用程序(结果相同) 我试着用谷歌搜索一些关于这个文件结构的文档 但是没有关于这个文件结构的文档 我知道这是LZW压缩文件,从 它的神奇数字是“1F 9D”,但这就是我能想到的。 有人请告诉我更多关于文件头或 什么都行 我对如何解压缩此文件不感兴趣,或者 什么linux命令可以处理此文件 我想知道的是内部文件结构/头/格式/布局。 提前感谢tar.Z文件

我正在试图弄清楚的文件布局 tar.Z文件。(所谓的.taz文件.compressed tar文件)

可以使用tar-Z选项或 使用unix压缩实用程序(结果相同)

我试着用谷歌搜索一些关于这个文件结构的文档 但是没有关于这个文件结构的文档

我知道这是LZW压缩文件,从 它的神奇数字是“1F 9D”,但这就是我能想到的。 有人请告诉我更多关于文件头或 什么都行

我对如何解压缩此文件不感兴趣,或者 什么linux命令可以处理此文件

我想知道的是内部文件结构/头/格式/布局。
提前感谢

tar.Z文件只是一个压缩的tar文件,因此您只能找到1F 9D魔术数字,告诉您解压缩它

解压缩后,您可以读取tar文件头:


Q:可以使用tar-Z选项或使用unix压缩实用程序生成此文件(结果相同)

A:是的。“tar-cvf myfile.tar myfiles;compress myfile.tar”相当于使用“-Z”。更好的选择通常是“j”(使用BZip而不是Zip)

问:tar文件的布局是什么

答:有很多参考资料,还有很多免费的来源。例如:

问:Unix压缩文件的格式是什么

答:同样,参考文献很多;易于找到的示例源代码:


tgz(压缩的tar文件)您将需要两种格式:您必须首先解压缩它,然后解压它。“tar”实用程序将自动为您实现这两个功能:)

A.Z文件使用compress进行压缩,可以使用uncompress进行解压缩(或者在某些机器上称为uncompress.real)。此.Z文件可以保存任何数据。tar.Z或.taz只是一个用compress压缩的.tar文件

前2个字节(MAGIC_1和MAGIC_2)用于检查.Z文件是否真的是.Z文件,而不是具有相同扩展名的其他文件。这些字节在源代码中硬编码

第三个字节是设置字节,包含2个值:

  • 最高有效位是块模式
  • 最后5位表示代码表的最大大小(代码表用于lzw压缩)
来自原始代码:BLOCK_MODE=0x80;字节3=(位|块|模式);位在if/else块中,它是12..16

如果启用块模式,则在代码表中,将在256处添加一个实体(请记住,0..255用值0..255填充),这将包含清除符号。因此,无论何时从文件的数据流中获得清除符号,代码表都必须恢复到其初始状态(因此它只有0..256)

最大代码大小表示代码表可以包含的位数。当达到最大值时,代码表中不再添加任何实体。因此,如果最大代码大小为0b00001100,则表示代码表只能容纳12位,因此最大值为2^12=4096个实体

压缩所使用的最大可能量为16位。这意味着此设置字段中有2位未使用


在这3个字节之后,原始LZW数据开始。因为LZW表从9位开始,所以第4个字节将与输入的第一个字节相同(对于.tar.Z文件或taz文件,此字节将是未压缩的.tar文件的第一个字节)。

谢谢,但我想知道1F 9D之后是否还有其他文件头。事实证明,在3个字节(2字节魔术和1字节最大代码位选项)之后,它只是纯LZW代码。