tar 文件解压后,文件大小为什么会减小

tar 文件解压后,文件大小为什么会减小

我们通常知道压缩是为了节省空间或传输时间而减小数据大小,当我解压压缩文件时,我应该会发现它的大小更大。我下载了一个 tar 格式的文件(95KB),当我解压它时,它的大小减少了(5.7KB),而它下面还有一些其他文件,现在甚至显示为 0 字节。这可能是什么原因造成的。

答案1

Tar 格式未经过压缩。但它会在存档中的每个文件或目录的开头添加标头。tar 使用标头来告知其文件的名称、时间戳等。该信息不是文件内部数据的一部分,但 tar 需要它来重新创建文件。每个标头通常为 512 字节,但如果文件名超过 100 个字符,则可能会更大。tar 存档的末尾以空白标头标记。这些标头通常解释了存档与从中提取的所有内容之间的大小差异。

还可能存在一些无法通过 tar 头的大小来解释的差异,但它们大多是极端情况,如果不查看 tar 文件或至少查看其列表,很难诊断。一个可能的解释是,如果存档包含大量相同文件的副本,即 tar 文件很大但提取的内容很少,那么就会出现巨大差异。如果有人不断在末尾添加较新的版本(可能是一种备份策略),就会发生这种情况。tar 提取只会在每次不占用更多空间的情况下覆盖同一个文件。

相关内容