Wenn ich im Finder ein Archiv erstelle ("Elemente komprimieren..."), enthält das resultierende ZIP-Archiv .DS_Store-Dateien in Ordnern und Dateien haben Ressourcenverzweigungen. Wie kann ich ein ZIP-Archiv erstellen, das für die plattformübergreifende Freigabe von Mac OS X geeignet ist?
zip -r -x .DS_Store directory.zip directory
zip
entfernt standardmäßig erweiterte Attribute und ACLsfind directory -name .DS_Store -delete; ditto -ck --norsrc directory directory.zip
--norsrc
impliziert --noextattr
und --noacl
; --noextattr
würde brauchen--norsrc
-c
komprimiert ist, -k
verwendet PKZip (zip) anstelle von CPIOCOPYFILE_DISABLE= tar --exclude .DS_Store -czf directory.tgz directory
COPYFILE_DISABLE
weist an tar
, erweiterte Attribute und ACLs zu entfernen, anstatt ._
Dateien zu erstellenDie Dateien, die mit beginnen, ._
sind AppleDouble-Dateien (keine Ressourcenzweige) und werden verwendet, um erweiterte Attribute und ACLs zu speichern.
Erweiterte Attribute werden verwendet, um den Quarantänestatus von Dateien, die Quell-URLs von aus dem Internet heruntergeladenen Dateien, Informationen über Aliase (Aliase funktionieren nicht mehr, wenn erweiterte Attribute entfernt werden), Spotlight-Kommentare, die Codierung von mit TextEdit gespeicherten Dateien usw. zu speichern .
Sie können erweiterte Attribute und ACLs mit auflisten ls -l@e
. Mit können Sie erweiterte Attribute und ACLs rekursiv entfernenxattr -cr .; chmod -NR .
Sie können den ditto
Befehl verwenden.
ditto -ck --norsrc sourcedir destination.zip
-c create an archive
-k create a PKZip archive instead of the default, which is CPIO
--norsrc do not preserve the resource forks
Ich denke jedoch, dass dies immer noch .DS_Store-Dateien enthalten wird.