Osx
為什麼 du 報告 HFS+ 分區上某些非空文件的大小為 0?
差異的解釋是什麼:
$ ls -l /Applications/Safari.app/Contents/Info.plist -rw-r--r-- 1 root wheel 15730 11 jui 15:02 /Applications/Safari.app/Contents/Info.plist $ du -sh /Applications/Safari.app/Contents/Info.plist 0B /Applications/Safari.app/Contents/Info.plist
將文件複製到我的主文件夾後,
ls
並du
報告相同的編號。$ cp /Applications/Safari.app/Contents/Info.plist . $ du -sh Info.plist; ls -l Info.plist 16K Info.plist -rw-r--r-- 1 ant staff 15730 17 oct 16:53 Info.plist
兩個目錄都在這個分區 ( / )
diskutil info / Device Identifier: disk0s2 Device Node: /dev/disk0s2 Part of Whole: disk0 Device / Media Name: ml2013 Volume Name: OSX.10.8 Escaped with Unicode: OSX.10.8 Mounted: Yes Mount Point: / Escaped with Unicode: / File System Personality: Journaled HFS+ Type (Bundle): hfs Name (User Visible): Mac OS Extended (Journaled) Journal: Journal size 40960 KB at offset 0xc83000 Owners: Enabled
這是stat的輸出:
$ stat Info.plist 16777218 8780020 -rw-r--r-- 1 root wheel 0 15730 "Oct 17 17:47:12 2013" \ "Jun 11 15:02:17 2013" "Jun 11 15:02:17 2013" "Apr 27 11:49:34 2013"\ 4096 0 0x20 Info.plist
我可能發現了一些東西:
OS X 上的 ls 命令有這個開關:
-O Include the file flags in a long (-l) output.
結果是:
$ ls -O Info.plist -rw-r--r-- 1 root wheel compressed 15730 11 jui 15:02 Info.plist
我剛剛檢查(實驗性地)
du
總是報告0
HFS+ 壓縮文件。複製壓縮文件解壓縮它們;所以邏輯
du
上在複製的未壓縮文件上報告正確的文件。以下是對 的行為的解釋
du
:HFS+ 文件壓縮
在 Mac OS X 10.6 中,Apple 在 HFS+ 中引入了文件壓縮。壓縮最常用於作為 Mac OS X 的一部分安裝的文件;使用者文件通常不會被壓縮(但當然可以!)。就 Apple 的文件系統 API 而言,讀取和寫入壓縮文件是透明的。
壓縮文件有一個空的數據叉。這意味著不知道 HFS+ 文件壓縮的取證工具(包括 4.0.0 之前的 TSK)將看不到任何與壓縮文件相關的數據!
Mac OS X and iOS Internals: To the Apple's Core
Jonathan Levin 在第 16 章 中也對此主題進行了討論:To B(-Tree) or not to be - HFS+ 文件系統。afsctool也可以幫助查看文件夾中壓縮了哪些文件。
$ afsctool -v /Applications/Safari.app/ /Applications/Safari.app/.: Number of HFS+ compressed files: 1538 Total number of files: 2247 Total number of folders: 144 Total number of items (number of files + number of folders): 2391 Folder size (uncompressed; reported size by Mac OS 10.6+ Finder): 29950329 bytes / 34.7 MB (megabytes) / 33.1 MiB (mebibytes) Folder size (compressed - decmpfs xattr; reported size by Mac OS 10.0-10.5 Finder): 21287197 bytes / 23.8 MB (megabytes) / 22.7 MiB (mebibytes) Folder size (compressed): 22694835 bytes / 25.2 MB (megabytes) / 24 MiB (mebibytes) Compression savings: 24.2% Approximate total folder size (files + file overhead + folder overhead): 26353338 bytes / 26.4 MB (megabytes) / 25.1 MiB (mebibytes)