有什么方法可以检查在squashfs文件系统中压缩后特定文件的最终大小吗?
我正在查看mksquashfs / unsquashfs命令行选项,但找不到任何内容。
使用mksquashfs-info中的选项仅打印压缩前的大小。
谢谢
这对于太细粒度来说是不可行的,因为压缩是在块级别而不是文件级别完成的。
一个文件可以从开始 50kb 标记到通过解压缩块 50 创建的缓冲区大小,并继续结束到解压缩块 52 中的 50 个字节(这里忽略片段,这是一个单独的问题)——但这并不让您映射回block-50压缩副本内该文件开始的位置。(您可以轻松确定块 51 的压缩比,但在我们的示例中,您无法轻松计算出 50 和 52 中包含的文件部分的压缩比,因为它们与其他内容共享)。
因此,这些信息不会被公开,因为它不容易获得。这实际上使大量(相似)小文件的存储效率显着提高,因为所有这些文件都使用单个压缩上下文(解压缩一个块以检索一个文件可能意味着它旁边的文件已经在内存中解压缩) )...但是如果没有潜在的毫无根据的假设(例如假设块中的所有内容共享该块的平均比率),它对于尝试回溯每个单独项目的压缩程度没有帮助,因为这些项目不是单独压缩的首先。