当我用Mac OSX中内置的zip压缩器压缩文件时,它会在提取的zip中创建一个名为“__MACOSX”的额外文件夹。
我是否可以调整我的设置以避免创建此文件夹,或者我是否需要购买第三方压缩工具?
更新:我刚刚发现了一个OSX的免费应用程序,解决了我的问题:“YemuZip”
更新2:YemuZip不再是免费软件。
当我用Mac OSX中内置的zip压缩器压缩文件时,它会在提取的zip中创建一个名为“__MACOSX”的额外文件夹。
我是否可以调整我的设置以避免创建此文件夹,或者我是否需要购买第三方压缩工具?
更新:我刚刚发现了一个OSX的免费应用程序,解决了我的问题:“YemuZip”
更新2:YemuZip不再是免费软件。
当前回答
当我遇到这个问题时,我已经从命令行完成了:
zip file.zip uncompressed
编辑,在许多反对票后:我使用这个选项一段时间前,我不知道我从哪里学到的,所以我不能给你一个更好的解释。克里斯·约翰逊的答案是正确的,但我不会删除我的。正如一个评论所说,它更准确地反映了OP的要求,因为它在没有这些文件的情况下进行压缩,而不是从压缩文件中删除它们。我发现它也更容易记住。
其他回答
这命令为我成就了这事:
zip -r Target.zip Source -x "*.DS_Store"
zip是要创建的zip文件。Source是要压缩的源文件/文件夹。-x参数指定要排除的文件/文件夹。
如果上面的方法不管出于什么原因都不管用,试试下面的方法:
zip -r Target.zip Source -x "*.DS_Store" -x "__MACOSX"
可以通过zip -d filename.zip __MACOSX/\*
并且,删除。ds_store文件:zip -d filename.zip \*/。DS_Store
清理.DS_Store和__MACOSX中的.zip文件,包括子文件夹:
zip -d archive.zip '__MACOSX/*' '*/__MACOSX/*' .DS_Store '*/.DS_Store'
介绍:
像往常一样,右键单击文件(或文件夹)并选择“压缩…” 打开终端应用(在Spotlight搜索中搜索终端) 在终端输入zip(但不要按回车键) 将.zip拖到终端,使其转换为路径 复制粘贴- d ' __MACOSX / * * / __MACOSX / * .DS_Store”* /。DS_Store” 回车 使用zipinfo archive.zip列出里面的文件,检查(可选)
另一个可以与Automator工具一起使用的shell脚本(参见benedikt关于如何创建脚本的回答)是:
while read -r f; do
d="$(dirname "$f")"
n="$(basename "$f")"
cd "$d"
zip "$n.zip" -x \*.DS_Store -r "$n"
done
不同之处在于,这段代码直接压缩选定的文件夹,而不包含macOS特定的文件(而不是先压缩后删除)。
我使用这个Automator Shell脚本来修复它之后。 它显示为上下文菜单项(右键单击Finder中显示的任何文件)。
while read -r p; do
zip -d "$p" __MACOSX/\* || true
zip -d "$p" \*/.DS_Store || true
done
使用Automator创建一个新的服务 在“查找器”选择“文件及文件夹” 添加一个“Shell Script Action”