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

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

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

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

Согласно unzipстранице руководства, эта -xопция может быть использована для исключения каталогов из обработки, и добавление -x __MACOSX/*в конец моей unzipкомандной строки действительно решает эту проблему. Но я не хочу вводить это все время. На странице руководства также говорится, что опции командной строки могут быть прочитаны из 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

Связанный контент