在 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