Wenn ich einen Ordner oder eine Datei über das Rechtsklickmenü von Mac OS X komprimiere, enthält die archivierte Datei die Ordner .DS_Store und __MACOSX . Da ich die archivierte Datei online zum Herunterladen freigebe, versuchen Windows-Benutzer fälschlicherweise, die Datei im Ordner __MACOSX zu suchen .
Ich brauche eine sauberere Archivoption. Ich möchte keine .DS_Store- und __MACOSX- Ordner, sondern nur die Datei oder den Ordner in die Archivdatei aufnehmen.
Alles, was ich gefunden habe, ist CleanArchiver , aber es ist eine GUI-Anwendung. Es braucht wirklich Zeit und ich muss viele Dateien komprimieren. Ich suche wenn möglich per Kontextmenü nach einer Lösung.
Gibt es eine Lösung, die Sie für sauberes Komprimieren empfehlen können?
Sie können den Befehl zip im Terminal verwenden , um die Dateien ohne die .DS_Store
, __MACOSX
und andere .*
Dateien zu komprimieren.
cd
Befehl zu dem Ordner, den Sie komprimieren möchtenzip -r dir.zip . -x ".*" -x "__MACOSX"
Angenommen, Sie haben auf Ihrem Desktop einen Ordner mit dem Namen Folder
Sachen zum Komprimieren.
Öffnen Sie das Terminal und schreiben Sie die folgenden Befehle:
cd Desktop/Folder
zip -r dir.zip . -x ".*" -x "__MACOSX"
Jetzt haben Sie eine Datei namens dir.zip
without __MACOSX
und .*
files im Ordner Folder
auf Ihrem Desktop.
zip
"__MACOSX/" beim Erstellen der ZIP-Datei gar nicht erst erstellt, also brauchen Sie eigentlich nur zip -r dir.zip .
. Wenn sich jedoch "__MACOSX/" irgendwie dort eingeschlichen hat, wird Ihre Lösung es los.zipinfo dir.zip
Nur ein paar zusätzliche Informationen ...
Mein Verständnis ist, dass __MACOSX ein Unterverzeichnis ist, das künstlich von den Mac-GUI-Tools erstellt wurde, um Metadaten wie erweiterte Attribute zu speichern, die normalerweise nicht in einer Zip-Datei gespeichert werden können.
Wenn Sie die Mac-GUI-Tools zum Entpacken der Zip-Datei verwenden, wissen die Tools, was mit __MACOSX zu tun ist, und das Verzeichnis wird nicht wirklich entpackt.
Die Probleme treten auf, wenn Sie Ihre .zip-Datei an Windows- oder Linux-Benutzer senden oder einfach das Allzweckprogramm unzip
zum Entpacken verwenden. Diese Tools wissen nicht, dass __MACOSX etwas Besonderes ist, und entpacken es einfach.
Die einfachste Option besteht darin, zip
anstelle des in Mac integrierten Tools Ihre ZIP-Datei zu packen. zip
wird __MACOSX nicht erstellen und Ihr Problem ist gelöst. (Sie werden dabei die Metadaten verlieren, aber Sie wollten sie wahrscheinlich sowieso nicht.)
zip -r dir.zip dir
Wenn es zu spät ist und Sie bereits eine ZIP-Datei mit __MACOSX haben, können Sie sie immer noch entfernen mit:
zip -d foo.zip __MACOSX .DS_Store
Schließlich ist die akzeptierte Antwort die beste, denn wenn __MACOSX aus irgendeinem Grund tatsächlich in Ihrem Verzeichnis existiert (z. B. weil Sie es zuvor unzip
erstellt haben), verhindert die Option -x, dass es gepackt wird.
Versuchen Sie Keka . Es enthält eine Option zum Ausschließen von .DS_Store
Das einzige, das ich jemals wirklich benutzt habe, ist BetterZip [$20]
Es ist eine GUI-App, hat aber Applescript & Services-Unterstützung, mit der Sie Voreinstellungen mit Ihren Standardeinstellungen ausführen können - einschließlich des Auslassens von Mac-spezifischen Dateien wie .DS_Store & __MACOSX. Eventuell einen Blick wert.
Aus der BetterZip-Hilfe...
BetterZip unterstützt zwei Dienste: einen zum Extrahieren und einen zum Erstellen von Archiven. Sie können konfigurieren, was die BetterZip-Dienste mit Voreinstellungen machen.
Um einen Dienst zu verwenden, wählen Sie eine oder mehrere Dateien oder Ordner im Finder aus und wählen Sie „Mit BetterZip komprimieren“ oder „Mit BetterZip extrahieren“ im Menü „Finder“ > „Dienste“ oder im Untermenü „Dienste“ im Kontextmenü.
Sie können sogar Tastaturkürzel für die BetterZip-Dienste festlegen, zB ^⌥⌘C zum Komprimieren und ^⌥⌘E zum Extrahieren. Um Verknüpfungen für Dienste festzulegen, gehen Sie zu Systemeinstellungen > Tastatur > Tastaturkürzel und wählen Sie Dienste in der linken Tabelle. Scrollen Sie in der rechten Tabelle zu Dateien und Ordnern, wählen Sie Mit BetterZip komprimieren und drücken Sie ↩. Es erscheint ein editierbares Textfeld. Drücken Sie die gewünschte Verknüpfung.
Eines meiner Save-Presets ...
Basierend auf der iTunes- Antwort. Ich musste auch DS_Store in verschachtelten Verzeichnissen wie folgt entfernen.
zip -r my.zip . -x "**/.DS_Store"
kryanbhu