如何找出 btrfs 上压缩/未压缩文件的大小?

如何找出 btrfs 上压缩/未压缩文件的大小?

我的一个硬盘上使用 btrfs。我想知道 btrfs 上的实际文件大小和压缩文件大小。我对查看每个文件的压缩率感兴趣。例如,ntfs 文件系统可以为您提供此类信息。

我在 fstab 中使用 compress-force=zlib 选项。我使用的是 Debian Squeeze 3.2.0-0.bpo.4-amd64

谢谢

答案1

有第三方工具可以做到这一点。

https://github.com/kilobyte/compsize

用法:

ayush@devbox:/code/compsize$ sudo compsize /opt
Processed 54036 files, 42027 regular extents (42028 refs), 27150 inline.
Type       Perc     Disk Usage   Uncompressed Referenced  
Data        82%      5.3G         6.4G         6.4G       
none       100%      4.3G         4.3G         4.3G       
zlib        37%      427M         1.1G         1.1G       
lzo         56%      588M         1.0G         1.0G  

答案2

这是一个有趣的问题,但目前看来似乎是负面的。

根据官方常见问题解答(https://btrfs.wiki.kernel.org/index.php/FAQ)原因是信息没有存储在文件系统中。内核有一个补丁(https://patchwork.kernel.org/patch/117782/),但同样,这仅计算使用的块(因此该比率四舍五入为块大小,因此最多相差 4KB)。

如果制作一个实用程序(可能的话),它将非常低效。程序必须解压缩文件才能确定压缩率。

相关内容