tar 存档的大小大于存档文件的大小

tar 存档的大小大于存档文件的大小

当我创建tar目录及其所有内容的存档时,存档的大小大于所有原始文件的总大小。

为什么会这样呢?

我正在使用 来检查文件大小ls -l

我正在使用创建存档tar -cvf archive directory

答案1

tar记录有关存档中存储的文件的名称和其他元数据 - 仅此信息就需要每个文件的存储字节数。

tar 文件内也可能存在大量空白空间,可能是由于阻塞造成的。在几次狭窄的测试中,我存储了一个零字节的文件,并获得了一个 2560 字节的 tar 文件; 1000 个零字节文件生成约 1.5MB 的存档。

tar当您在没有压缩标志(例如)的情况下使用时,z除了较大的文件之外,您不会获得任何其他内容。

答案2

1977 年的历史TAR记录了每个文件 512 字节的元数据。

如果您归档大小为 500 字节的文件,则与纯文件内容相比,归档中所需的空间会增加一倍以上。

如果将此与文件系统中文件的开销进行比较,这通常仍然小于文件系统所需的文件整体空间。

顺便说一句:1997 年,Solaris 引入了一种新的增强型TAR归档格式。此格式已通过 POSIX.1-2001 标准化。它被称为paxtar with extended headers

tar with extended headers支持以任意分辨率归档时间戳和任意长度的文件名。具有扩展标头的存档TAR每个文件至少需要 1536 字节的开销。这仍然不超过典型文件系统的开销,因为文件系统需要 inode 信息、目录条目、ACL 和其他增强的元数据,并且在将文件内容存储在列表中时通常将文件大小舍入为 1..8 kBytes文件系统后台存储的块数。

相关内容