为什么使用7zip压缩文件夹会导致解压后文件夹文件大小不同?

为什么使用7zip压缩文件夹会导致解压后文件夹文件大小不同?

我使用 7zip 压缩和加密我的文件夹。但是,我最近注意到,假设我想要压缩和加密的文件夹有 29,805,050,333 字节。然后,我将文件夹转换为带加密的 7zip 存档。

然后,我解压这个 7zip 存档,并(应该)得到第二个包含原始内容的文件夹。但是,将原始文件夹与提取 7zip 存档后得到的文件夹进行比较,我发现新提取的文件夹有 29,805,822,344 字节。

提取文件夹前后有大约 800,000 字节的差异。7zip 做了什么导致我丢失了这些字节?是元数据吗?

答案1

您可能会看到稀疏文件(看起来比磁盘上实际使用的空间更大)被 7zip 或新文件系统“填充”,或碎片或间接块,或者您正在提取到具有不同块大小的不同文件系统,从而看到不同的“使用的磁盘空间”大小。

我确信 Mac 有这个du实用程序,它可以显示文件(或文件夹路径)使用的实际磁盘空间,或者仅显示数据大小(7zip 等存档程序压缩的数据)。以下是一些有用的选项:

--apparent-size
          print  apparent sizes, rather than disk usage; although the apparent
          size is usually smaller, it may be larger due to holes in ('sparse')
          files, internal fragmentation, indirect blocks, and the like

-b, --bytes
          equivalent to '--apparent-size --block-size=1'

-s, --summarize
          display only a total for each argument

因此,要查看实际使用的磁盘空间,请运行

du --block-size=1 -s

但要查看数据大小,请运行

du -b -s 

我也喜欢-h, --human-readable 以人类可读的格式打印尺寸(例如 1K 234M 2G)选项,但它可能会掩盖较小的差异。

因此,请尝试在提取之前和之后运行两个不同的du命令,以进行更准确的比较。

相关内容