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