解压时禁止提取__MACOSX 目录

解压时禁止提取__MACOSX 目录

在 Mac OS X 系统上生成的 ZIP 档案通常包含一个__MACOSX目录,该目录无用、烦人且不受欢迎在几乎所有其他操作系统上。

我使用以下方法来解压 ZIP 档案:信息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.

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

答案1

使用 shell 函数:

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

myunzip foo.zip

相关内容