当我用Mac OSX中内置的zip压缩器压缩文件时,它会在提取的zip中创建一个名为“__MACOSX”的额外文件夹。

我是否可以调整我的设置以避免创建此文件夹,或者我是否需要购买第三方压缩工具?

更新:我刚刚发现了一个OSX的免费应用程序,解决了我的问题:“YemuZip”

更新2:YemuZip不再是免费软件。


当前回答

凯卡是这样做的。只要把你的目录拖到应用程序屏幕上。

其他回答

在你想要压缩的文件夹中,在终端:

zip -r -X Archive.zip *

其中-X表示:排除那些不可见的Mac资源文件,如“_MACOSX”或“。“_Filename”和“。ds”存放文件

注意:将只适用于文件夹和后续的文件夹树,你在,必须有*通配符。

不需要的文件夹还可以通过以下方式删除:

zip -d filename.zip "__MACOSX*"

最适合我

清理.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列出里面的文件,检查(可选)

zip命令行工具永远不会创建__MACOSX目录,所以你可以像这样运行一个命令:

zip directory.zip -x \*.DS_Store -r directory

在下面的输出中,我用zip命令行工具创建的a.s zip不包含__MACOSX目录,但我从Finder创建的2.zip包含__MACOSX目录。

$ touch a
$ xattr -w somekey somevalue a
$ zip a.zip a
  adding: a (stored 0%)
$ unzip -l a.zip
Archive:  a.zip
  Length     Date   Time    Name
 --------    ----   ----    ----
        0  01-02-16 20:29   a
 --------                   -------
        0                   1 file
$ unzip -l a\ 2.zip # I created `a 2.zip` from Finder before this
Archive:  a 2.zip
  Length     Date   Time    Name
 --------    ----   ----    ----
        0  01-02-16 20:29   a
        0  01-02-16 20:31   __MACOSX/
      149  01-02-16 20:29   __MACOSX/._a
 --------                   -------
      149                   3 files

-x . ds_store不排除目录中的. ds_store文件。DS_Store。

顶级的zip归档文件多个文件通常应该一个目录,因为如果不是这样,一些unarchiving公用工程(解压缩和7 z,但不是档案效用,Unarchiver, unar,或dtrx)不包含目录创建一个文件档案提取时,通常很难找到的文件,如果多个这样的档案提取的同时,很难告诉哪些文件属于哪个档案。

Archive Utility only creates a __MACOSX directory when you create an archive where at least one file contains metadata such as extended attributes, file flags, or a resource fork. The __MACOSX directory contains AppleDouble files whose filename starts with ._ that are used to store OS X-specific metadata. The zip command line utility discards metadata such as extended attributes, file flags, and resource forks, which also means that metadata such as tags is lost, and that aliases stop working, because the information in an alias file is stored in a resource fork.

通常,您可以丢弃特定于OS x的元数据,但要查看元数据文件包含什么,可以使用xattr -l。Xattr还包括资源叉和文件标志,因为即使它们实际上没有作为扩展属性存储,也可以通过扩展属性接口访问它们。Archive实用程序和zip命令行实用程序都会丢弃acl。

凯卡是这样做的。只要把你的目录拖到应用程序屏幕上。