我使用 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
命令,以进行更准确的比较。