我创建了具有相同像素大小(2000x2000)和不同内容(黑色、红色、白色和照片)的不同未压缩位图图像,无论内容如何,都期望文件大小(以字节为单位)完全相同。
结果如下:
- wc -c 命令报告每个图像的相同大小(12000056 字节)。
- Hex 编辑器报告大小相同的结果。我还可以清楚地看到每个 RGB 通道的位图像素信息,正如预期的那样。
- Mac OSX“Finder”和“获取信息”报告细微差别。(12 106 957、12 005 274、12 005 261...)
什么可以解释这些差异?这是操作系统添加的一些元数据吗?与文件系统有关吗?有什么办法可以确切知道发生了什么吗?
答案1
看起来这是由于文件具有资源分叉和数据分叉。资源分叉是 OS X 文件系统的一个旧功能(大部分已过时),可以存储有关文件的额外数据。Finder 会将资源分叉视为文件大小的一部分,但大多数 unix 风格的工具甚至不知道它们的存在,因此不会将它们显示为文件大小的一部分。以下是我拥有的一个旧文档的列表:
$ wc -c About\ iMac\ Firmware\ Update
2710 About iMac Firmware Update
$ ls -l@ About\ iMac\ Firmware\ Update
-rwx---r-x@ 1 gordon staff 2710 Sep 14 2001 About iMac Firmware Update
com.apple.FinderInfo 32
com.apple.ResourceFork 17759
Finder 的信息窗口显示其大小为 20,269 字节 (= 数据分叉中的 2,710 + 资源分叉中的 17,759)。