
Архивы 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