В Finder, когда я создаю архив ("Сжать элементы..."), полученный zip-архив имеет файлы .DS_Store в папках, а файлы имеют ветки ресурсов. Как я могу создать zip-архив, подходящий для совместного использования на разных платформах из Mac OS X?
zip -r -x .DS_Store directory.zip directory
zip
по умолчанию удаляет расширенные атрибуты и ACLfind directory -name .DS_Store -delete; ditto -ck --norsrc directory directory.zip
--norsrc
подразумевает --noextattr
и --noacl
; --noextattr
потребует--norsrc
-c
сжимается, -k
использует PKZip (zip) вместо CPIOCOPYFILE_DISABLE= tar --exclude .DS_Store -czf directory.tgz directory
COPYFILE_DISABLE
сообщает tar
об удалении расширенных атрибутов и ACL вместо создания ._
файлов .Файлы, которые начинаются с, ._
являются файлами AppleDouble (а не ответвлениями ресурсов), и они используются для хранения расширенных атрибутов и списков ACL.
Расширенные атрибуты используются для хранения статуса карантина файлов, исходных URL-адресов файлов, загруженных из Интернета, информации об псевдонимах (псевдонимы перестают работать, если расширенные атрибуты удалены), комментариев Spotlight, кодировки файлов, сохраненных с помощью TextEdit, и т. д. .
Вы можете перечислить расширенные атрибуты и ACL с помощью ls -l@e
. Вы можете удалить расширенные атрибуты и ACL рекурсивно с помощьюxattr -cr .; chmod -NR .
Вы можете использовать ditto
команду.
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
Я думаю, что это все равно будет включать файлы .DS_Store.