__MACOSX 文件夹是 macOS 系统在压缩(通常是 ZIP 格式)文件时自动生成的一个隐藏目录,用来存储文件的“资源叉”(Resource Forks)和其他元数据(比如文件图标位置、颜色标签、Finder 信息等)。


详细介绍:

  • 为什么存在?
    macOS 文件系统(HFS+、APFS)支持比 Windows 或 Linux 更复杂的文件元数据和属性。为了保留这些信息,当在 macOS 上压缩文件时,系统会把这些额外信息单独保存到 __MACOSX 目录中。
  • 内容包括:
    • .DS_Store 文件的相关信息
    • 文件的图标、标签、权限等
    • 资源叉(Resource Forks)数据
  • 在其他系统看到的情况:
    当你在 Windows 或 Linux 解压 macOS 生成的 ZIP 文件时,会看到这个 __MACOSX 文件夹。它对于非 macOS 系统通常没用,可以安全删除。

是否可以删除?

  • 可以删除!
    除非你在 macOS 系统上需要保留特定的文件元信息,否则这个文件夹不影响文件的正常使用,删除不会损坏文件内容。

避免生成 __MACOSX

如果你不想在压缩包里看到这个文件夹,可以使用命令行压缩工具,如:

zip -r archive.zip folder -x "__MACOSX" -x ".*"

或者在 macOS 的命令行用 ditto 压缩,它不会生成这些额外文件:

ditto -c -k --sequesterRsrc --keepParent folder archive.zip

明白!下面给你一份更详细的关于 macOS 系统隐藏文件,特别是 __MACOSX 文件夹及相关隐藏文件(如 .DS_Store)的全面介绍,以及如何查看、清理和避免它们生成的方法。


macOS隐藏文件详解:__MACOSX.DS_Store及其它元数据文件


1. __MACOSX 文件夹详解

1.1 产生原因

  • macOS 支持文件资源叉(Resource Forks)和丰富的元数据(标签、图标位置、权限等)。
  • 当使用 Finder 压缩文件夹时,这些额外信息不会直接保存在文件中,而是存放在 __MACOSX 目录里。
  • 这样确保解压缩时,macOS 能恢复文件原有的属性和资源。

1.2 目录内容示例

__MACOSX/
└── folder_name/
    ├── ._filename      # 资源叉的隐藏文件
    └── .DS_Store      # 文件夹的 Finder 配置信息

1.3 其他系统下的表现

  • Windows 和 Linux 解压时,会看到这个目录,且内容多为无用的隐藏文件。
  • 这些文件对非 macOS 系统没有作用,可以安全删除。

2. .DS_Store 文件详解

  • .DS_Store 是 macOS Finder 在每个文件夹自动生成的隐藏文件,记录文件夹的视图设置(图标排列、窗口位置、背景图等)。
  • 这个文件在压缩时也会被包含,导致其他系统用户看到无关文件。

3. 如何查看 macOS 隐藏文件

3.1 终端显示隐藏文件

打开 macOS 终端,输入:

defaults write com.apple.finder AppleShowAllFiles TRUE
killall Finder

这会显示所有隐藏文件,包括 .DS_Store 和 __MACOSX 相关文件。

3.2 恢复隐藏

defaults write com.apple.finder AppleShowAllFiles FALSE
killall Finder

4. 如何删除__MACOSX 和 .DS_Store

4.1 删除__MACOSX文件夹

在终端执行(替换路径):

rm -rf /path/to/unzipped/__MACOSX

4.2 删除所有 .DS_Store

清理用户目录及子目录的所有 .DS_Store

find ~ -name ".DS_Store" -delete

5. 如何避免生成这些文件

5.1 压缩时排除

使用 zip 命令压缩时排除隐藏文件:

zip -r archive.zip folder -x "__MACOSX" -x ".*"

5.2 使用 ditto 命令压缩

ditto 是 macOS 原生工具,压缩时不会生成__MACOSX目录:

ditto -c -k --sequesterRsrc --keepParent folder archive.zip

6. 额外说明

  • 这些隐藏文件是 macOS 文件系统设计的一部分,保障了资源完整和用户体验。
  • 在跨平台传输文件时,这些文件会造成困扰,建议在分享或备份前清理。
  • 有些版本控制系统(如 Git)推荐将 .DS_Store 和 __MACOSX 加入 .gitignore