Was ist der __MACOSX-Ordner?


152

Welche __MACOSX-Ordner werden in ZIP-Dateien angezeigt, die von OSX-Benutzern erstellt wurden? Einige nehmen bis zu 30% der Datei ein.

Mit welchem ​​Programm werden diese __MACOSX-Ordner erstellt und wie können Mac-Benutzer diesen Fehler vermeiden?


8
Sie sind sehr irritierend, ja, und normalerweise sinnlos, da die Ressourcengabeln so oft leer sind. Aber zumindest sind sie harmlos, im Gegensatz zu dem nicht standardmäßigen Ansatz, den Apple bei Archivgrößen von> 4 GB mit dem eingebauten OS X-Zeug eingeschlagen hat, was jedes andere Tool verwirrt und bei ausreichend großen Dateien wieder kaputt geht. Und hey, es könnte schlimmer sein, es könnte zwei Kopien jeder Datei mit demselben Namen speichern, eine für die Daten und eine für den Ressourcenzweig, was es oft unmöglich macht, darauf zuzugreifen, wie es vor OSX-Macs üblich war. Oh Apple, warum hasst du Standard-Dateiformate?
Bobince

3
@bobince: Eigentlich waren Ressourcengabeln eine sehr gute Idee ... zu der Zeit. Heutzutage wird der gleiche Effekt erzielt, indem Ressourcen als einzelne Dateien gespeichert werden, von denen die meisten in etwa wie Standarddateiformate aussehen.

16
An Metadaten als solchen ist nichts auszusetzen, nur, dass Apple das Talent hat, eigene Formate zu erfinden und vorhandene Formate mit unbegründet inkompatiblen Erweiterungen durcheinander zu bringen! Die inhaltlichen Daten als Metadaten zu haben, ist an sich schon eine großartige Sache, und es macht mich traurig, dass OS X als Alternative zum Windows-Hack der Dateierweiterungen übergeht. Dies ist zwar nicht so schlimm wie unter Linux, wo das Dateisystem das Speichern von Content-Type-Metadaten unterstützt, aber keine Desktops es verwenden, sondern eine gründlich aufgebrochene Mischung aus Dateierweiterungs- / Namensmustern und Content-Sniffing (urgh!). Seufz OSes wie?
Bobince

@bobince: Aber ja, zumindest das Format , das sie für die aus dieser macht keinen wirklichen Schaden, andere als leicht Verzeichnislisten unübersichtlich und im Wesentlichen 1 Inode und 1 Block pro leer Ressourcenzweig extrahierten verschwenden, wenn Sie so etwas wie NTFS verwenden (die speichert den Dateiinhalt in der MFT für solche kleinen Dateien. In diesem Fall wird nur die "Inode" (MFT-Eintrag) verschwendet.
SamB

9
Kann nachträglich behoben werden vonzip -d filename.zip __MACOSX/\*
Chris Johnson

Antworten:


52

http://www.realsoftware.com/listarchives/gettingstarted/2005-09/msg00328.html

Apple bietet integrierte Funktionen für ZIP-Dateien in OS X 10.3 und höher. Diese Dateien sind das Ergebnis der sicheren Speicherung von Resource Forks durch Apple. Sie würden diese Dateien niemals unter OS X 10.3 oder höher sehen, aber da Windows und andere Betriebssysteme diese spezielle Form von Resource Forks nicht verstehen, werden sie so angezeigt, wie Sie sie sehen.


4
Es handelt sich nicht nur um Ressourcengabels, sondern alles, was über den Inhalt grundlegender Dateien hinausgeht, wird in die AppleDouble-Datei eingefügt. Apple bewegt sich weg von Ressourcengabeln, aber hin zu Dingen wie erweiterten Attributen, die auch im AppleDouble-Container gespeichert werden.
Gordon Davisson

14
Sie lassen es wie ein Feature klingen. In der Metadatenabteilung fehlen absichtlich ZIP-Dateien. Wenn Sie Metadaten möchten, verwenden Sie ein anderes Format, keinen Mac. Beispiel für die ordnungsgemäße Implementierung von zip +
-Metadaten

16
Dead Link, bitte beheben.
Lucas - Better Coding Academy

71
"Da Windows und andere Betriebssysteme nicht verstehen" - Ugh. Ich hasse nur diese Art von Terminologie
Joe Plante

5
Neu entdeckt: Wenn Sie auf einem Mac arbeiten, wird über die Befehlszeile unzip filename.zipdas Verzeichnis __MACOSX / entpackt, das Sie nicht möchten, aber open filename.zipdas Richtige tun.
Edward Falk

107

Hier ist ein Link, der es ziemlich gut erklärt. Ich nehme an, es ist etwas spät, Yada zu helfen, aber für die Nachwelt.

Erklärung der Ressourcengabel bei Wikipedia

Der Rest ist meine Meinung:

@nickf: Niemals diese Dateien zu sehen, ist kein FEATURE dieser OS X-Versionen, sondern ein FLAW. Menschen produzieren Daten, wickeln sie ab, speichern sie auf verschiedenen Medien und so weiter. Sie müssen wissen, was benötigt wird oder was nicht benötigt wird. Das Verstecken hält sie im Dunkeln.

Die uralte schlechte Idee, Dinge vor Benutzern zu verbergen: Ein Programmierer, der sich darum bemüht, seine eigene Arbeit zu erledigen, missbraucht etwas in der Domäne des Endbenutzers, um es sich leicht zu machen.

In diesem Fall speicherte er Metadaten im Datenraum des Benutzers und versteckte sie dann vor dem Benutzer. Er hat das große Ganze verpasst: Der Nutzer wird sich der versteckten Details nicht bewusst. Wenn er seine Daten verpackt und an einen vom Programmierer unerwarteten Ort versendet, werden fehlende Teile nicht versendet, oder es kommen unbekannte Teile an, die weder der Benutzer noch der Empfänger erklären können.

Dinge vor dem Benutzer zu verstecken ist schlecht. Es wird davon ausgegangen, dass der Benutzer dumm ist, wenn der Programmierer genauer gesagt dumm oder faul ist.

Um klar zu sein, ist diese schlechte Angewohnheit nicht auf MAC beschränkt. Es ist überall. Es ist eine Folge davon, dass sich Programmierer in ihre eigenen Programme und Anbieter verlieben und ihre eigenen Ziele priorisieren, bevor sie die Bedürfnisse der Endbenutzer erfüllen.

In Kürze.

__MACOSX:
seltsam riechender Programmierkot, der unter dem Teppich auftaucht, auf dem sie gekehrt wurden.

Programmierer und Verkäufer: Bitte halten Sie die Dinge offen. Wenn Sie sie verstecken, machen Sie sich dumm und der Benutzer uninformiert.


12
Diese Antwort wäre besser, wenn es nur eine Antwort wäre. Das langwierige Geschimpfe über dumme Programmierer und faule Benutzer lenkt davon ab.
Kristopher Johnson

1
@pbernatchez Tatsächlich, wenn Sie aufhören würden zu erfahren, wie die Dinge aussahen und wie sie sich entwickelten, würden Sie hier wahrscheinlich nicht Ihren eigenen arroganten "Kot" zurücklassen. Resource Forks waren ein (wirklich nettes!) Implementierungsdetail vor Mac OS X, und Benutzer fanden sie nur, wenn sie mit anderen Systemen verbunden waren. Seit den 90er Jahren ist Apple zunehmend in eine Welt ohne Ressourcengabeln gewechselt, hat sich aber immer noch nach hinten gebeugt, um die Kompatibilität zu gewährleisten. Msgstr "Metadaten im Datenraum des Benutzers speichern"? WTF? Wie verdreht müssen Sie "Metadaten" und "Benutzerdatenraum" definieren, um das zu sagen? Sie müssen Dateisysteme hassen!
Hmijail

3
Msgstr "Dinge vor dem Benutzer zu verstecken ist schlecht". Mann, Sie müssen auch alle Arten von Benutzeroberflächen, Bibliotheken und Abstraktionen hassen und ... jede Art von Programmierung und Computern, die fortgeschrittener sind als ein Abakus.
Hmijail

4
Dies beantwortet die Frage nicht. Nachdem ich diese Antwort gelesen habe, weiß ich immer noch nicht, welche Metadaten im _MACOSX-Ordner enthalten sind oder welche Ressourcengabeln. Ich vermute, die Leute stimmen dem zu, nur weil sie der Schimpfe zustimmen.
Atte Juvonen

1
Ich bin damit einverstanden, dass der emotional aufgeladene Ton nicht hilfreich ist, aber ich stimme absolut zu, dass das Erstellen von versteckten Dingen, die gelegentlich benötigt werden, eine wirklich schlechte Idee ist, genau wie in dieser Antwort angegeben: Benutzer werden entweder (a) keine versteckten Dateien versenden, die sind oder (b) verborgene Dateien versenden, die der Empfänger sehen und auch nicht verstehen kann. Diese Dateien sollten entweder sichtbar sein oder die Daten sollten auf eine Weise in die Dateien eingebettet sein, die von anderen Betriebssystemen als "überspringbar" gekennzeichnet ist. Versteckte Dateien und Verzeichnisse sollten in erster Linie zum Schutz der Benutzer verwendet werden, nicht im Dunkeln.
Mike Williamson

16

So beantworten Sie Ihre letzte Frage:

Wie können Mac-Benutzer diesen Fehler vermeiden?

Mac OS X-Benutzer können ein Archivierungsdienstprogramm eines Drittanbieters wie Keka installieren und dann anweisen , Resource Forks nicht zu verwenden. Anschließend können Sie es als Standardkomprimierungsprogramm festlegen.


Wie geht das mit Keka?

Weisen Sie Keka an, keine Resource Forks zu verwenden

  1. Öffnen Sie Keka ohne Datei (über Launchpad, Spotlight usw.)
  2. Drücken Sie ⌘ Cmd+ ,, um die Einstellungen zu öffnen
  3. Wählen Sie die Registerkarte Komprimierung
    Keka Registerkarte "Komprimierung", ausgewählt
  4. Aktivieren Sie "Mac-Resource-Forks ausschließen (z. B .: .DS_Store)"
    Ein Kontrollkästchen mit der Aufschrift "Mac-Ressourcengabeln ausschließen (z. B. .DS_Store)"

Machen Sie Keka zum Standardkompressor

  1. Im selben Keka Preferences Fenster
  2. Wählen Sie die Registerkarte Allgemein
    Keka Registerkarte "Allgemein", ausgewählt
  3. Klicke auf "Setze Keka als Standardkompressor / Dekompressor"
    Bildbeschreibung hier eingeben

1
Dies könnte verbessert werden, indem in den letzten beiden Schritten einige Informationen hinzugefügt werden.
Steven C. Howell

@ stvn66 Fertig! Nur zu Ihrer Information, das liegt normalerweise außerhalb des Rahmens dieser Fragen, weshalb ich es anfangs nicht getan habe.
Ben Leggiero

2
Downvoting, sorry. Ich bin kein Fan der Installation von Software von Drittanbietern, um ein Problem zu beheben, das mit der Standardsoftware behoben werden kann. Wie Chris Johnson oben ausgeführt hat, zip -dwerden die Ressourcengabeln aus einer Zip-Datei entfernt. In der Tat denke ich, wenn Sie zip an erster Stelle verwenden, werden die Ressourcengabeln nicht an erster Stelle hinzugefügt.
Edward Falk

1
@EdwardFalk Das ist fair! Diese Antwort sollte das Problem lösen: "Wie bringe ich es dazu, dass es sich immer so verhält?" Problem, nicht das "Wie bringe ich es dazu, sich einmal so zu verhalten?" einer.
Ben Leggiero
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.