Сжатие без .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 на рабочем столе.


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 будет препятствовать его упаковке.



2

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

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

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

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

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

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

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

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


Это хороший вариант графического интерфейса для пользователей Setapp.
Лев
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.