Подавить извлечение каталога __MACOSX при разархивировании

ZIP-архивы, созданные в системах Mac OS X, обычно включают __MACOSX каталог, который бесполезен, раздражает и нежелателен практически во всех других ОС.

Для распаковки ZIP-архивов я использую Info-ZIP, который, я думаю, является распаковкой по умолчанию в большинстве дистрибутивов Linux. Как лучше всего иметь Info-ZIP? unzip всегда и автоматически подавлять извлечение любого __MACOSX каталог который может присутствовать?

Согласно unzip справочная страница, -x опция может быть использована для исключения каталогов из обработки, и, действительно, добавление -x __MACOSX/* до конца моего unzip командная строка делает свое дело. Но я не хочу постоянно это печатать. Страница man также говорит, что параметры командной строки можно прочитать из UNZIP переменная окружения, но, видимо, это работает только для тех опций, которые идут перед именем архива (тогда как -x должен прийти за ним)

$ export UNZIP="-x __MACOSX/*"
$ unzip foo.zip
unzip:  cannot find or open __MACOSX, __MACOSX.zip or __MACOSX.ZIP.

Есть ли лучшее решение, чем упаковка unzip в сценарии оболочки, который автоматически добавляет -x __MACOSX/* до конца командной строки?

1 ответ

Используйте функцию оболочки:

myunzip() {
    unzip "@$" -x '__MACOSX/*'
}

myunzip foo.zip
Другие вопросы по тегам