Unterdrückt die Extraktion des Verzeichnisses __MACOSX beim Entpacken

Unterdrückt die Extraktion des Verzeichnisses __MACOSX beim Entpacken

ZIP-Archive, die auf Mac OS X-Systemen erstellt werden, enthalten normalerweise ein __MACOSXVerzeichnis, dasnutzlos, lästig und unerwünschtauf so ziemlich jedem anderen Betriebssystem.

Zum Entpacken von ZIP-Archiven verwende ichInfo-ZIP, das meines Wissens das Standard-Entpackprogramm der meisten Linux-Distributionen ist. Was ist die beste Möglichkeit, Info-ZIPs dazu zu bringen, das Entpacken eventuell vorhandener Verzeichnisse unzipimmer und automatisch zu unterdrücken ?__MACOSX

Laut der unzipManpage -xkann die Option verwendet werden, um Verzeichnisse von der Verarbeitung auszuschließen, und tatsächlich funktioniert das Hinzufügen -x __MACOSX/*am Ende meiner unzipBefehlszeile. Aber ich möchte das nicht ständig eingeben müssen. Die Manpage sagt auch, dass Befehlszeilenoptionen aus der UNZIPUmgebungsvariable gelesen werden können, aber anscheinend funktioniert das nur für die Optionen, die kommenVorder Archivname (wobei -xdanach kommen muss):

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

Gibt es eine bessere Lösung als das Einbinden unzipin ein Shell-Skript, das automatisch etwas -x __MACOSX/*am Ende der Befehlszeile hinzufügt?

Antwort1

Verwenden Sie eine Shell-Funktion:

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

myunzip foo.zip

verwandte Informationen