文件大小 Mac OSX “获取信息”与“wc -c”

文件大小 Mac OSX “获取信息”与“wc -c”

我创建了具有相同像素大小(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)。

相关内容