Squashfs 检查压缩文件大小

Squashfs check compressed file size

有什么方法可以检查 squashfs 文件系统中压缩后特定文件的最终大小?

我正在查看 mksquashfs/unsquashfs 命令行选项,但我找不到任何东西。

mksquashfs中使用-info选项只打印压缩前的大小。

谢谢

这对于粒度太大是不可行的,因为压缩是在块级别而不是文件级别完成的。

一个文件可能被标记为开始 50kb 到 通过解压块 50 创建的缓冲区的大小,并继续到解压块 52 结束 50 字节(此处忽略片段) ,这是一个单独的问题)——但这不会让您映射回 block-50 的 compressed 副本中该文件开始的位置。 (您可以轻松确定块 51 的压缩率,但在我们的示例中,您无法轻松计算出文件中包含在 50 和 52 中的部分的比率,因为它们与其他内容共享)。

所以信息没有公开,因为它不容易获得。这实际上使许多(相似的)小文件的存储效率显着提高,因为所有这些文件都使用一个压缩上下文(并且解压缩一个块以检索一个文件可能意味着您已经在内存中解压缩了它旁边的文件)...但是如果没有潜在的毫无根据的假设(例如假设一个块中的所有内容共享该块的平均比率),它无助于尝试回溯每个单独项目的压缩程度,因为这些项目不是单独压缩的第一名。