我的一个硬盘上使用 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)。
如果制作一个实用程序(可能的话),它将非常低效。程序必须解压缩文件才能确定压缩率。