2011-04-26 98 views
1

在终端上运行命令“du -ch/Applications”,记下其大小。
现在从“Get Info”选项查看/ Applications文件夹的大小。
显示主要尺寸差异。其他文件夹也是如此。
这种差异的原因是什么,其中哪一个是确切的大小?Mac OS X上的“du”命令和“get info”显示的尺寸差异

+0

尝试使用du -k。如果我正确记住我的MacBook Pro,du由于某种原因默认为500字节块大小。 – photoionized 2011-04-26 18:01:56

+0

它默认为512字节或'$ BLOCKSIZE'(在手册页中有记载) - 这个约定可以追溯到几十年,我想可能是因为旧的Unix文件系统使用了512字节块?如果使用'-h',块大小将被忽略。 – 2011-04-26 18:15:42

回答

3

在最近的OS X版本中,Finder与存储制造商一样使用base 10(1 MB = 1000 KB等),而不是基于2(1 MiB = 1024 KiB),如du -h所做的那样。

这是this SuperUser question重复 - 希望它可以封闭,复制,一旦它的移动...

+0

我不确定原因是这样,因为差异比基于10和base 2的可能性要大得多。我的机器上/ Applications文件夹的输出是:从“获取信息”(925.3 MB),从“du - ck/Applications“477596,来自”du -c/Applications“955192和”du -ch/Applications“466M – rohits 2011-04-27 05:22:10

+0

也许你在非数据分支中有很多数据?据我所知杜是不是叉意识,但Finder是。我建议你深入研究/ Applicstions的各个子目录,看看是否是这种情况,或者如果它可能与文件系统压缩相关,如其他答案所述。可能最好从一个小苹果应用程序开始。 – 2011-04-27 05:30:00

1

你使用系统提供的du,或者你从源代码安装一些du

所显示的大小的巨大差异可能是由于文件系统压缩,某些BSD工具看不到。它基本上是通过将文件的压缩版本放在文件的资源分支中,保持数据分叉为空。当文件被读取时,内容被自动解压缩。但是一些BSD API报告数据分支的大小,因此缺少资源分支中真实数据的大小。

有关更多详细信息,请参见this explanation

我相信标准/usr/bin/du负责该文件系统压缩的,所以如果你不使用的MacPorts或芬克安装老版本的du这不应该成为问题的原因...

+0

我正在使用du提供的系统 – rohits 2011-04-27 05:28:37