估计 tar.gz 中压缩文件的大小

估计 tar.gz 中压缩文件的大小

我有一组.tar.gz文件,它们是表里不一备份文件(完整备份或增量备份)。我想计算哪些目录在备份中占用最多的空间。这很可能与计算哪些目录在实时文件系统中占用最多的空间不同,因为我需要考虑文件更改的频率(因此在增量备份中占用空间)以及文件的可压缩性。

我知道,虽然许多其他存档格式将压缩文件存储为存档文件内的不同实体,但.tar.gz文件却不是这样,因此无法获得单个文件在压缩后在存档中占用的确切存储量。是否有任何工具可以计算至少一些估算值?

答案1

如果您对压缩后的特定文件大小感兴趣,只需使用 gzip 压缩文件一次即可。这应该是最直接的方法。

答案2

因此,我修改了一些 C 代码来找到一些近似值。代码显示了zlib从存档中读取了多少字节才能到达每个后续文件。代码如下:https://github.com/liori/targz-sizes

看来我可以提取更精确的数据,但这些值与真实值的差异不应超过每个文件的几个字节,并且错误是所有文件的平均值,因此对于问题中描述的目的来说应该足够好。

相关内容