在Finder中通过上下文菜单压缩文件/文件夹时,即选择文件/文件夹,然后右键单击并选择Compress ...,将在zip归档文件中创建一个名为__MACOSX的隐藏文件夹。
如何在zip归档文件中不创建名为__MACOSX的隐藏文件夹?
ditto
,zip
或创建的Automator服务来执行必要的行动来实现目标等
在Finder中通过上下文菜单压缩文件/文件夹时,即选择文件/文件夹,然后右键单击并选择Compress ...,将在zip归档文件中创建一个名为__MACOSX的隐藏文件夹。
如何在zip归档文件中不创建名为__MACOSX的隐藏文件夹?
ditto
,zip
或创建的Automator服务来执行必要的行动来实现目标等
Answers:
使用来自其他答案的信息,这是一个Automator Service 1,该服务在Finder中可用,可以从zip存档文件中删除“ __MACOSX” 元数据文件夹。
要创建服务:
打开Automator,然后选择:文件 > 新建 > 服务
设置服务接收选择到文件或文件夹,并在以查找。
添加运行shell脚本 的行动,设置外壳:到/斌/庆典和通输入:以作为参数,而替换默认的代码与下面的代码:
for f in "$@"; do
if [[ ${f##*.} =~ ^[zZ][iI][pP]$ ]]; then
zip -d "$f" "__MACOSX*"
fi
done
afplay /System/Library/Sounds/Purr.aiff
什么代码所做的:它检查传递到服务每一个文件都有一个zip扩展,无论情况下,如果有一个zip扩展,如果“__MACOSX”的zip压缩包内时,删除了“__MACOSX” 元数据 zip存档中的文件夹。
${f##*.}
获取文件扩展名,=~
测试regex,并且^[zZ][iI][pP]$
regex匹配方括号内每个字母的任何大小写组合,同时^
在字符串开头声明位置并在字符串结尾$
声明位置。因此,仅zip
在任何情况下都匹配这些字母。
注意:代码的最后一行是可选的,只是为了让您知道服务已完成,并且可以更改为其他声音,如果不想在完成时通过声音通知,则可以将其省略。
将服务另存为,例如:从Zip存档中删除“ __MACOSX”
1在macOS Mojave和更高版本中,Automator 服务称为快速操作。还存在其他较小的命名差异,但与MacOS之前的Mojave Automator工作流程进行比较时,它们应该更明显。
要使用服务:
在Finder中,或者在桌面上(如果zip存档位于那里),选择zip存档,然后右键单击并从上下文菜单或上下文菜单中的Services下从Zip存档中选择Delete'__MACOSX',或者从Finder 菜单上的服务(如果适用)。
的形象服务于Automator的,下面,是从OS X 10.8.6,但是,它在MacOS 10.12.5进行了测试,并在那里工作为好。
首先,像往常一样通过查找器创建ZIP。接下来,打开Terminal并cd进入ZIP文件所在的目录。如果路径很长,只需键入“ cd”,然后将文件夹拖到“终端”(少键入总是好方法)。
现在输入以下内容:
zip -d your-archive.zip "__MACOSX*"
那应该做到的。此命令(zip)将从您的ZIP文件(your-archive.zip)中删除以__MACOSX开头的所有内容(-d)。
要验证,请键入以下内容:
unzip -l your-archive.zip
这将仅列出your-archive.zip的内容。
就像user3439894所说的那样,请尝试第三方解决方案。我长期以来一直在使用免费的应用程序Keka取得成功:
在Keka首选项中进行配置,以在归档文件中不创建Mac专用文件。也可以通过上下文菜单使用它(将“ Compress with Keka.workflow”添加到“〜/ Library / Services”文件夹之后),请参阅其网站左下方的链接。