不使用.DS_Store和__MACOSX进行压缩


25

当我通过Mac OS X的右键菜单压缩文件夹或文件时,存档文件包含.DS_Store__MACOSX文件夹。因为我在线共享存档文件以供下载,所以Windows用户错误地尝试在__MACOSX文件夹中搜索文件。

我需要一个更干净的存档选项。我不想将.DS_Store__MACOSX文件夹包括在内,而仅将文件或文件夹包括到存档文件中。

我发现的只是CleanArchiver,但它是GUI应用程序。这确实需要时间,而且我要压缩很多文件。我正在通过上下文菜单寻找解决方案。

您有什么建议可以建议您进行干净压缩吗?

Answers:


33

您可以在终端中使用zip命令来压缩不带.DS_Store__MACOSX和其他。*文件的文件。

打开终端(搜索在聚光灯终端)
导航到该文件夹您想要使用cd命令来压缩
粘贴此zip -r dir.zip . -x ".*" -x "__MACOSX"

示例:假设您的桌面上有一个名为Folder的文件夹,其中包含要压缩的内容。
打开终端并编写以下命令:
cd Desktop/Folder
zip -r dir.zip . -x ".*" -x "__MACOSX"

现在,您的桌面文件夹Folder中有一个名为dir.zip的文件,其中没有__MACOSX和。*文件。


1
+1您可以将其包装到自动化服务中吗?
fd0

4
从技术上讲,如果您用于zip创建zip文件,则不会首先创建“ __MACOSX /”,因此您真正需要的是zip -r dir.zip .。但是,如果“ __MACOSX /”以某种方式潜入其中,您的解决方案将摆脱它。
爱德华·福尔克

2
您也可以通过在控制台中键入轻松地验证您的zip文件中是否没有__MACOSXzipinfo dir.zip
Fostah,2016年

13

只是一些额外的信息...

我的理解是__MACOSX是Mac GUI工具人为创建的子目录,用于保存元数据,例如通常无法保存在zip文件中的扩展属性。

如果使用Mac GUI工具解压缩zip文件,则这些工具将知道如何处理__MACOSX,并且实际上不会解压缩目录。

当您将.zip文件发送给Windows或Linux用户,或仅使用通用unzip程序将其解压缩时,就会发生问题。这些工具不会知道__MACOSX是特殊的,只会解压缩它。

最简单的选项是用来zip打包您的zip文件,而不是Mac内置工具。zip将不会创建__MACOSX并且您的问题已解决。(您将在此过程中丢失元数据,但是您可能还是不想要它。)

zip -r dir.zip .

如果为时已晚,并且您已经具有__MACOSX的zip文件,则仍可以使用以下方法将其删除:

zip -d foo.zip __MACOSX .DS_Store

最后,可接受的答案是最好的,因为如果由于某种原因__MACOSX实际上存在于您的目录中(例如,因为您以前曾经unzip创建过它),则-x选项将阻止它被打包。



2

我曾经真正使用过的只有BetterZip [$ 20]

它是一个GUI应用程序,但是具有Applescript&Services支持,您可以使用默认设置来运行预设-包括省略Mac特定的文件,例如.DS_Store和__MACOSX。可能值得一看。

从BetterZip帮助中...

BetterZip支持两种服务:一种用于提取,另一种用于创建档案。您可以使用预设配置BetterZip服务将执行的操作。

要使用服务,请在Finder中选择一个或多个文件或文件夹,然后从Finder>服务菜单或上下文菜单中的服务子菜单中选择“使用BetterZip压缩”或“使用BetterZip提取”。

您甚至可以为BetterZip服务设置键盘快捷键,例如,^ C用于压缩,^ E用于提取。要设置服务的快捷方式,请转到系统偏好设置>键盘>键盘快捷方式,然后在左侧表格中选择服务。在右表中,滚动到“文件和文件夹”,选择“使用BetterZip压缩”,然后按↩。将出现一个可编辑的文本字段。按所需的快捷方式。

我的保存预设之一...

在此处输入图片说明


对于Setapp用户而言,这是一个不错的GUI选项。
狮子座
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.