解压时禁止提取 __MACOSX 目录

Psy*_*aut 6 linux zip command-line archiving

在 Mac OS X 系统上生成的 ZIP 档案通常包含一个__MACOSX目录,该目录在几乎所有其他操作系统上都是无用的、烦人的和不需要的

为了解压 ZIP 档案,我使用Info-ZIP,我认为这是大多数 Linux 发行版上的默认解压器。让 Info-ZIPunzip始终自动禁止提取__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.
Run Code Online (Sandbox Code Playgroud)

有没有比包装unzip在自动添加-x __MACOSX/*到命令行末尾的shell 脚本更好的解决方案?

Bar*_*mar 8

使用 shell 函数:

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

myunzip foo.zip
Run Code Online (Sandbox Code Playgroud)