2011-04-26 99 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