Подавить извлечение каталога __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