Сжатие без .DS_Store и __MACOSX

25

Когда я сжимаю папку или файл, щелкнув правой кнопкой мыши меню Mac OS X, заархивированный файл содержит папки .DS_Store и __MACOSX . Поскольку я делюсь архивным файлом онлайн для загрузки, пользователи Windows по ошибке пытаются найти файл в папке __MACOSX .

Мне нужно иметь более чистый вариант архива. Я не хочу включать папки .DS_Store и __MACOSX , а только файл или папку в файл архива.

Я нашел только CleanArchiver, но это приложение с графическим интерфейсом. Это действительно требует времени, и у меня много файлов для сжатия. Я ищу решение по контекстному меню, если это возможно.

Есть ли какое-либо решение, которое вы можете порекомендовать для чистого сжатия?

Джон Бернард
источник

Ответы:

33

Вы можете использовать команду zip в Терминале, чтобы архивировать файлы без файлов .DS_Store , __MACOSX и других. *.

Открыть терминал (поиск терминала в центре внимания).
Перейдите в папку, которую вы хотите заархивировать, с помощью команды cd
Вставьте этуzip -r dir.zip . -x ".*" -x "__MACOSX"

Пример: допустим, у вас на рабочем столе есть папка с папкой для архивирования.
Откройте терминал и напишите следующие команды:
cd Desktop/Folder
zip -r dir.zip . -x ".*" -x "__MACOSX"

Теперь у вас есть файл с именем dir.zip без файлов __MACOSX и. * В папке Folder на рабочем столе.

Itunes
источник
1
+1 Можете ли вы обернуть это в службу автоматизации?
fd0
4
Технически говоря, если вы используете zipдля создания zip-файла, "__MACOSX /" не будет создан в первую очередь, так что все, что вам действительно нужно, это zip -r dir.zip .. Однако, если «__MACOSX /» каким-то образом пробрался туда, ваше решение избавится от него.
Эдвард Фальк
2
Также вы можете легко проверить, что в вашем zip-файле нет __MACOSX, набрав в консолиzipinfo dir.zip
Fostah
13

Просто дополнительная информация ...

Насколько я понимаю, __MACOSX - это подкаталог, искусственно созданный инструментами графического интерфейса Mac для хранения метаданных, таких как расширенные атрибуты, которые обычно нельзя сохранить в zip-файле.

Если вы используете инструменты Mac GUI для распаковки zip-файла, инструменты будут знать, что делать с __MACOSX, и каталог фактически не будет распакован.

Проблемы возникают, когда вы отправляете файл .zip пользователям Windows или Linux или просто используете универсальную unzipпрограмму для их распаковки. Эти инструменты не будут знать, что __MACOSX особенный, и просто распакуют его.

Самый простой вариант - использовать zipупакованный zip-файл вместо встроенного инструмента Mac. zipне создаст __MACOSX, и ваша проблема решена. (В процессе вы потеряете метаданные, но, вероятно, вам все равно это не нужно.)

zip -r dir.zip .

Если уже слишком поздно, и у вас уже есть zip-файл с __MACOSX, вы все равно можете удалить его с помощью:

zip -d foo.zip __MACOSX .DS_Store

Наконец, принятый ответ является наилучшим, потому что, если по какой-то причине __MACOSX действительно существует в вашем каталоге (например, потому что вы ранее использовали его unzipдля создания), опция -x будет препятствовать его упаковке.

Эдвард Фальк
источник
4

Попробуй Кека . Он поставляется с возможностью исключить .DS_Store

введите описание изображения здесь

ohho
источник
2

BetterZip [$ 20] - это один из тех, что я когда-либо использовал.

Это приложение с графическим интерфейсом, но имеет поддержку Applescript & Services, с помощью которой вы можете запускать пресеты с настройками по умолчанию, в том числе исключая специфичные для Mac файлы, такие как .DS_Store & __MACOSX. Возможно стоит посмотреть.

Из справки BetterZip ...

BetterZip поддерживает два сервиса: один для извлечения и один для создания архивов. Вы можете настроить, что сервисы BetterZip будут делать с пресетами.

Чтобы использовать службу, выберите один или несколько файлов или папок в Finder и выберите «Сжать с помощью BetterZip» или «Извлечь с помощью BetterZip» в меню «Finder»> «Службы» или в подменю «Службы» в контекстном меню.

Вы даже можете установить сочетания клавиш для служб BetterZip, например, ^ ⌥⌘C для сжатия и ^ ⌥⌘E для извлечения. Чтобы установить ярлыки для служб, перейдите в «Системные настройки»> «Клавиатура»> «Сочетания клавиш» и выберите «Службы» в левой таблице. В правой таблице выделите «Файлы и папки», выберите «Сжать с помощью BetterZip» и нажмите ↩. Появится редактируемое текстовое поле. Нажмите на нужный ярлык.

Один из моих пресетов сохранения ...

введите описание изображения здесь

Tetsujin
источник
Это хороший вариант графического интерфейса для пользователей Setapp.
Лев