Mac OS X meldet Verzeichnisgrößen nicht richtig?

Mac OS X meldet Verzeichnisgrößen nicht richtig?

Mir ist aufgefallen, dass ich im Finder beim Duplizieren einiger .app-Dateien (im Ordner „Programme“) anzeige, dass die duplizierte .app-Datei nicht dieselbe Größe wie das Original hat. Diese Diskrepanz in der Dateigröße tritt nicht bei allen .app-Dateien auf, die ich dupliziere, aber es scheint so, dass je größer die .app-Datei ist, desto wahrscheinlicher ist es, dass die duplizierte Datei nicht dieselbe Größe wie das Original hat. Hier sind einige Beispiele:

GarageBand.app - 381.7 MB
GarageBand copy.app - 373.2 MB

iMovie.app - 695.3 MB
iMovie copy.app - 635.4 MB

Install Xcode.app - 1.81 GB
Install Xcode copy.app - 1.57 GB

Ich bin neu bei Macs und nachdem mir dieses Problem mit der Dateigrößendiskrepanz aufgefallen war, habe ich festgestellt, dass .app-Dateien eigentlich keine Dateien sind – es sind eigentlich Verzeichnisse, aber der Finder zeigt sie als Dateien an. Daher dachte ich, dass der Duplizierungsprozess vielleicht nicht den gesamten Inhalt des ursprünglichen .app-Verzeichnisses kopiert hat und dies den Unterschied in der „Dateigröße“ erklärt. Aber dann habe ich DeltaWalker heruntergeladen und installiert, ein Tool zum Vergleichen von Dateien und Ordnern, und DeltaWalker hat angezeigt, dass die duplizierten .app-Verzeichnisse genau dieselben sind wie die ursprünglichen .app-Verzeichnisse. Der Duplizierungsprozess hat also einwandfrei funktioniert und es scheint daher ein Problem mit der Anzeige der Dateigrößen durch den Finder zu geben.

Ich habe außerdem die Größe der Verzeichnisse im Terminal mit dem Befehl „du“ geprüft und auch dort zeigen sich Größenunterschiede zwischen dem Originalverzeichnis und dem Duplikatverzeichnis:

du -k /Applications/GarageBand.app/
212868  /Applications/GarageBand.app/

du -k /Applications/GarageBand\ copy.app/
397880  /Applications/GarageBand copy.app/

du -k /Applications/iMovie.app/
629644  /Applications/iMovie.app/

du -k /Applications/iMovie\ copy.app/
700500  /Applications/iMovie copy.app/

du -k /Applications/Install\ Xcode.app/
1771864 /Applications/Install Xcode.app/

du -k /Applications/Install\ Xcode\ copy.app/
1772228 /Applications/Install Xcode copy.app/

Außerdem sind es nicht nur .app-Verzeichnisse. Ich habe mein /Developer/Library-Verzeichnis dupliziert, und hier ist, was du gesagt hast:

du -k /Developer/Library/
320784  /Developer/Library/

du -k /Developer/Library\ copy/
399868  /Developer/Library copy/

Kann mir also jemand erklären, warum Mac OS X die Verzeichnisgrößen nicht richtig angibt? Handelt es sich um einen Fehler (kaum zu glauben bei etwas so Einfachem) oder übersehe ich etwas (als neuer Mac-Benutzer)?

(Ich verwende Mac OS X Lion 10.7.2)


UPDATE als Antwort auf elofturtle:

Das Seltsamste daran ist, dass der Finder keine Konsistenz hat. Ich habe einfach 2 Duplikate von GarageBand.app erstellt und dann 2 Duplikate von einem der Duplikate. Der Finder zeigt jedes einzelne Duplikat in einer anderen Größe an:

GarageBand.app - 381.7 MB
GarageBand copy.app - 357.6 MB (duplicate of GarageBand.app)
GarageBand copy 2.app - 353.9 MB (duplicate of GarageBand.app)
GarageBand copy 3.app - 378.2 MB (duplicate of GarageBand copy 2.app)
GarageBand copy 4.app - 329.1 MB (duplicate of GarageBand copy 2.app)

Beachten Sie auch, dass „GarageBand copy 3.app“ größer ist als „GarageBand copy 2.app“, während „GarageBand copy 4.app“ kleiner ist als „GarageBand copy 2.app“. Das muss ein Fehler im Finder sein.

Hier ist, was „du -k“ über sie alle sagt:

212868  /Applications/GarageBand.app/
397880  /Applications/GarageBand copy.app/
397880  /Applications/GarageBand copy 2.app/
397880  /Applications/GarageBand copy 3.app/
397880  /Applications/GarageBand copy 4.app/

Zumindest heißt es dort, dass alle Duplikate die gleiche Größe haben, aber sie haben nicht die gleiche Größe wie das Original.

Antwort1

Die Unterschiede haben verschiedene Gründe: unterschiedliche Zählweisen, unterschiedliche Tools, Komprimierung und etwas, das wie ein Fehler aussieht.

Dererster Unterschiedin der Größe, die Sie sehen, scheint einFehler im Finder. Die vom Finder angezeigten Dateigrößen werden irgendwie in Echtzeit berechnet und in .DS_StoreDateien zwischengespeichert. Aus irgendeinem Grund berechnet der Finder beim Duplizieren einer großen Anwendung/eines großen Ordners deren Größe während des Kopiervorgangs und speichert die dann unvollständige Größe zwischen. Diese Größe wird dann in den Finder-Fenstern ausgegraut angezeigt, wobei grau bedeutetDer Finder weiß, dass sich der Inhalt seit der letzten Größenberechnung geändert hat, hat ihn aber noch nicht neu berechnet.

Die einzige Möglichkeit, die Größe richtig neu zu berechnen, besteht darin, die .DS_StoreDatei im Anwendungsordner zu löschen, dann den Finder zu beenden (beispielsweise über den Aktivitätsmonitor) und ihn erneut zu starten (über das Dock-Symbol). Wenn Sie die .DS_StoreDatei nicht löschen, bleibt sie weiterhin ausgegraut. Vielleicht warten Sieirgendwann(Stunden, Tage, Neustart, ...) veranlasst den Finder, dies selbstständig zu erledigen.

Danach sollten Sie sehen, dass alle vom Finder gemeldeten Größen gleich sind.

Also ja, es sieht nach einem Finder-Fehler aus, zumindest in OSX Lion (getestet mit 10.7.4 hier, Finder-Version 10.7.3). Sie können auch sehendieser Threaddie dasselbe Verhalten meldet.

Dann schauen wir uns das duTool an. Zuerst dachte ich, der Unterschied, den wir sehen, könnte durch den Unterschied zwischen logischer und physischer Größe der kopierten Elemente erklärt werden. Die logische Größe ist dierealGröße des Elements, also jedes einzelne darin enthaltene Informationsbit zusammengerechnet. Die physikalische Größe ist die Größe des Elements auf der Festplatte, wobei jedes Informationsbit in einen Festplattensektor geschrieben wird.

Beispielsweise hätte eine Datei, die ein einzelnes Zeichen enthält, eine logische Größe von 1 Byte, aber eine physische Größe von 512 Byte oder sogar 4096 Byte, wenn sie tatsächlich auf die Festplatte geschrieben wird. Die physische Größe ist normalerweise größer als die logische Größe (und hängt von der tatsächlichen Sektor-/Blockgröße der Festplatte oder des Dateisystems ab). Dies istin diesem anderen Thread ausführlicher erklärtDie logische Größe könnte größer sein im Falle vonSparse-Dateien, aber HFS+ scheint eine solche Funktion nicht zu unterstützen.

duzeigt nur die physische Größe an (und Sie können sagen, was eine BLOCKSIZE ist). Sie können sehen, dass die von gemeldete Größe duimmer größer (oder in Ausnahmefällen gleich) als das Original ist. Dies liegt an der Fragmentierung des Dateisystems und des Speicherplatzes. Wenn Sie eine Datei kopieren (in diesem Fall eigentlich eine Reihe von Dateien, da eine Anwendung ein Verzeichnis ist), werden neue Sektoren auf der Festplatte zugewiesen undwenn Fragmentierung auftrittist die Anzahl der verwendeten Blöcke normalerweise höher als die des Originalartikels. Manche Leute nennen dasDatei Slack.

Nun zurück zum Finder. Öffnen Sie denInformationen bekommenFenster der Anwendungen, die Sie dupliziert haben, sehen Sie, dass der Finder tatsächlich sowohl die logische als auch die physische Größe des ausgewählten Elements angibt. Das macht dann Sinn. Sie können sogar die vom Finder gemeldete physische Größe mit der von gemeldeten vergleichen, duwenn Sie ein wenig rechnen.

Warum rechnen? Weil der Finder die Dateigrößen in kB, MB oder GB anzeigt und dusie in kiB, MiB oder GiB meldet. Das sind dieIEC-Binärpräfixedie zum Berechnen und Anzeigen von Einheiten digitaler Informationen verwendet werden sollen.

Aber eigentlich bin ich nicht sicher, ob File Slack hier eine Rolle spielt, da liegt noch etwas anderes vor. HFS+-Volumes ermöglichen Komprimierung, erfolgt transparent, und Apple verwendet dies für die ursprünglichen Elemente, die vom Betriebssystem installiert wurden. Wenn Dateien dann mit Standardtools kopiert werden, wird die Komprimierung nicht mehr verwendet (standardmäßig, um abwärtskompatibel zu sein). Wenn Sie die Komprimierung für diese Dateien beibehalten möchten, müssen Sie den dittoBefehl anstelle von cpoder einer beliebigen Finder-Aktion verwenden. Dies istin dieser Rezension erklärt.

Hier ist die Ausgabe des Kopierens von iTunes.app mit den verschiedenen Techniken. Sie werden sehen, dass dito die Anwendung genau auf dieselbe Größe bringt und dabei die Komprimierung beibehält, was bei cpnicht der Fall ist. Und Sie können sogar die Binärdatei für den Arch entfernen, den Sie nicht benötigen, und dann die Gesamtgröße reduzieren):

antoine@amarante:/Applications$ du -ms iTunes.app/
281 iTunes.app/
antoine@amarante:/Applications$ cp -a iTunes.app/ iTunes-copy.app/
antoine@amarante:/Applications$ ditto iTunes.app/ iTunes-ditto.app
antoine@amarante:/Applications$ ditto --arch x86_64 iTunes.app/ iTunes-64.app
antoine@amarante:/Applications$ du -ms iTunes*
236 iTunes-64.app
289 iTunes-copy.app
281 iTunes-ditto.app
281 iTunes.app

Danke an @DanPritts für seine Antwortauf meinem ergänzenden Beitrag.

Antwort2

Es handelt sich um einen schrecklichen Fehler/Bug in OS X. Am einfachsten erkennt man ihn, indem man ein großes Anwendungspaket dupliziert, dann den Inhalt anzeigt und eine riesige Datei darin löscht. Der Speicherplatz wird nicht wiederhergestellt. Die Datei ist immer noch riesig. Wenn Sie beispielsweise ein 3,5 GB großes Anwendungspaket haben, den Inhalt anzeigen und dann 3 GB davon entfernen, sollten Sie jetzt eine Anwendung mit einer Dateigröße von 500 MB haben. Das wird nicht passieren. Es wird immer noch 3,5 GB groß sein.

Antwort3

Dies ist im Grunde eine Vermutung, aber ich sehe zwei Möglichkeiten:

  1. Einige Daten wurden gelöscht, aber im Original nicht freigegeben, und diese werden nicht kopiert. Dennoch werden sie bei einigen Suchen nach Datenträgernutzung angezeigt, bei anderen jedoch nicht (du oder was auch immer OS X intern verwendet, werden unterschiedliche Parameter zugewiesen).
  2. Einige Daten werden mit dem ursprünglichen Standort verknüpft und dies wirkt sich auf die wahrgenommene Größe in verschiedenen Tools aus.

Wenn (1), sollten Sie wahrscheinlich andere Ergebnisse erhalten, wenn Sie eine dritte Kopie erstellen und die Kopien vergleichen.

Antwort4

Ich hatte dieses Problem mit meinem Home-Verzeichnis, nachdem ich es nach der Installation von Yosemite auf der SSD auf eine interne Festplatte verschoben hatte. Bei Verwendung von „Informationen“ wurde eine falsche Größe von nur 8 GB gemeldet, obwohl in der Statusleiste des Finders die korrekte Größe von 240 GB angezeigt wurde. Ich habe es behoben, indem ich im Ordner „Benutzer“ auf „Informationen“ geklickt habe, woraufhin die falsche Größe, die vom Home-Verzeichnis gemeldet wurde, richtig berechnet und behoben wurde.

verwandte Informationen