Fallbeispiel: Apples TextEdit bei /Applications/TextEdit.app
Wenn Sie die physikalische Größe mit berechnen, echo "$(/usr/bin/du -k -d 0 /Applications/TextEdit.app | /usr/bin/awk '') * 1024" | /usr/bin/bc -l
erhalten Sie (in meinem Fall am 10.11.6) eine Größe von 4538368 Bytes .
Wenn Sie jedoch das Infofenster in Finder öffnen, wird die physische Größe deutlich größer: 8,6 MB auf der Festplatte, fast doppelt so groß.
Es ist klar, warum: Apple die HFS-Komprimierung für TextEdit verwendet hat. Das Ausführen des Drittanbieter-Tools afsctool (das Sie mit Homebrew installieren können) führt zu folgendem Ergebnis:
/usr/local/bin/afsctool /Applications/TextEdit.app /Applications/TextEdit.app: Number of HFS+ compressed files: 693
Nun scheint macOS offensichtlich die unkomprimierte physische Größe zu kennen, wie der Wert für die Größe der Festplatte im Fenster des Finders zeigt.
Meine Frage ist, ob es eine Nur-Lese-Befehlszeile gibt, um diese Informationen abzurufen, dh eine Möglichkeit, Folgendes anzuzeigen:
(a) die unkomprimierte physische Größe (Datenträgerverwendung) einer Datei, die HFS-komprimiert ist, dh eine Datei, für die /usr/bin/stat -f %f
"32" zurückgegeben wird (obwohl es in TextEdit aus irgendeinem Grund "524320" ist) und
(b) die unkomprimierte physische Gesamtgröße (Datenträgerverwendung) eines Verzeichnisses oder Pakets, das HFS-komprimierte Dateien enthält.
Hinweis: Zum Berechnen der Größe sollten nur macOS native Befehle verwendet werden, während keine Spotlight-abhängigen Daten verwendet werden, z. B. von dem mdls
Befehl, der fehlerhaft ist und manchmal (null)
für den kMDItemPhysicalSize
Schlüssel zurückgegeben wird, abgesehen davon, dass einige Benutzer Spotlight insgesamt deaktiviert haben.