
Was ist die Erklärung für den Unterschied:
$ 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
Sobald die Datei in meinen Home-Ordner kopiert ist, geben ls
Sie du
dieselbe Nummer ein.
$ 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
Beide Verzeichnisse befinden sich auf dieser Partition ( / )
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
Hier ist die Ausgabe von 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
Antwort1
Ich habe vielleicht etwas gefunden:
Der Befehl ls unter OS X hat diesen Schalter:
-O Include the file flags in a long (-l) output.
Das Ergebnis ist:
$ ls -O Info.plist
-rw-r--r-- 1 root wheel compressed 15730 11 jui 15:02 Info.plist
Ich habe gerade (experimentell) überprüft, dass du
immer Berichte 0
für HFS+-komprimierte Dateien erstellt werden.
Beim Kopieren komprimierter Dateien werden diese dekomprimiert; daher wird logischerweise du
die richtige Datei als kopierte, unkomprimierte Datei gemeldet.
Hier ist eine Erklärungfür das Verhalten von du
:
HFS+-Dateikomprimierung
In Mac OS X 10.6 führte Apple die Dateikomprimierung in HFS+ ein. Die Komprimierung wird am häufigsten für Dateien verwendet, die als Teil von Mac OS X installiert werden; Benutzerdateien werden normalerweise nicht komprimiert (können es aber sein!). Das Lesen und Schreiben komprimierter Dateien ist hinsichtlich der Dateisystem-APIs von Apple transparent.
Komprimierte Dateien haben einen leeren Datenzweig. Das bedeutet, dass forensische Tools, die die HFS+-Dateikomprimierung (einschließlich TSK vor 4.0.0) nicht kennen, keine mit einer komprimierten Datei verknüpften Daten sehen!
Es gibt auch eine Diskussion zu diesem Thema Mac OS X and iOS Internals: To the Apple's Core
von Jonathan Levin, in Kapitel 16: B(-Tree) oder nicht sein – Die HFS+-Dateisysteme.
AuchAbonnierenkann dabei helfen, zu sehen, welche Dateien in einem Ordner komprimiert sind.
$ 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)
Antwort2
Wenn Sie verwenden du
und die Ergebnisse aus zwei verschiedenen Läufen mit Dateisystemen vergleichen, müssen Sie unbedingt den Schalter verwenden --apparent-size
.
Beispiel
Hier ist eine gemountete CIFS-Freigabe.
$ du -sh somedir
50M somedir
$ du -sh --apparent-size somedir
45M somedir
Auszug aus der Manpage
--apparent-size
print apparent sizes, rather than disk usage; although the apparent
size is usually smaller, it may be larger due to holes in (‘sparse’)
files, internal fragmentation, indirect blocks, and the like
Na, was is los?
Das verwirrt viele Leute, aber denken Sie daran, dass Dateien, wenn sie auf einer Festplatte gespeichert werden, Speicherblöcke belegen, selbst wenn sie nur einen Teil dieser Blöcke verwenden. Wenn Sie du
ohne diese Option arbeiten --apparent-size
, erhalten Sie die Größe basierend auf der Menge des belegten Blockspeichers der Festplatte, nicht auf dem tatsächlich von den Dateien belegten Speicherplatz.
Was ist mit der Größe 0B?
0B /Anwendungen/Safari.app/Contents/Info.plist
Dies ist höchstwahrscheinlich ein Link. Durch Ausführen dieses Befehls wird angezeigt, ob dies der Fall ist.
$ ls -l /Applications/Safari.app/Contents | grep Info.plist
Antwort3
Meine Antwort steht im Einklang mit den anderen, aber ich kann noch keinen Kommentar abgeben, also fange ich neu an:
Die meisten Dateien in /Applications sind komprimiert und gehen beim Kopieren verloren. Bei der Komprimierung in HFS+ werden die Dateidaten im Resource Fork gespeichert.ODERein erweitertes Attribut, wenn es klein genug ist (weniger als 4 KB). Wenn es sich in einem Ressourcenzweig befindet, zeigt du (zumindest unter Yosemite) seine tatsächliche Festplattennutzung in Blöcken an. Wenn es vollständig im Attribut enthalten ist, wird 0 angezeigt.