Wie kann man die unkomprimierte physische Gesamtgröße einer HFS-komprimierten Datei oder eines HFS-Verzeichnisses in Byte anzeigen?

642
JayB

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 -lerhalten 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 mdlsBefehl, der fehlerhaft ist und manchmal (null)für den kMDItemPhysicalSizeSchlüssel zurückgegeben wird, abgesehen davon, dass einige Benutzer Spotlight insgesamt deaktiviert haben.

2

1 Antwort auf die Frage

0
kenorb

Verwenden Sie zum Beispiel den afsctoolBefehl -vflag:

$ afsctool -v README README: File is HFS+ compressed. File size (uncompressed data fork; reported size by Mac OS 10.6+ Finder): 3046 bytes / 3 KB (kilobytes) / 3 KiB (kibibytes) File size (compressed data fork - decmpfs xattr; reported size by Mac OS 10.0-10.5 Finder): 0 bytes / 0 KB (kilobytes) / 0 KiB (kibibytes) File size (compressed data fork): 1427 bytes / 1 KB (kilobytes) / 1 KiB (kibibytes) Compression savings: 53.2% Number of extended attributes: 0 Total size of extended attribute data: 0 bytes Approximate overhead of extended attributes: 268 bytes Approximate total file size (compressed data fork + EA + EA overhead + file overhead): 1943 bytes / 2 KB (kilobytes) / 2 KiB (kibibytes)