如何在 Mac OS 上查看和删除文件的扩展属性

macOS 中的终端

扩展属性是 Mac OS 上特定文件和文件类型所独有的元数据组件。这些扩展属性可以是任何东西,从文件本身的识别数据到隔离信息、原始数据、标签信息,以及其他类型的元数据。

有时,高级 Mac 用户可能会查看文件的扩展属性,或者出于各种原因甚至希望从文件或目录中删除扩展属性,并且这些任务中的任何一个都可以通过带有捆绑 xattr 的命令行来完成Mac 操作系统中的工具。本教程将介绍如何在 Mac 上查看和删除文件的扩展属性。

这是一个高级主题,实际上只与已经熟悉扩展属性并且有特殊原因想要从文件中删除它们的高级用户相关。如果您不确定扩展属性是什么、为什么它们可能(或可能不重要)重要,或者您可能想要(或不想)删除它们的原因,那么这不适合您。

如何在 Mac OS 中查看文件的扩展属性

xattr 命令已经在 Mac OS 和 Mac OS X 中使用了很长时间,因此它应该在几乎所有模糊的现代版本的系统软件上都能正常工作:

  1. 打开 /Applications/Utilities/ 中的终端应用
  2. 像这样使用 xattr 命令,指向文件路径以检查扩展属性
  3. xattr ~/Desktop/samplefile.jpg

  4. 点击回车查看指定文件的扩展属性

例如,您在执行命令后可能会看到如下内容:

xattr ~/Desktop/samplefile.jpg
com.apple.metadata:kMDItemIsScreenCapture
com.apple.metadata:kMDItemScreenCaptureGlobalRect
com.apple.metadata:kMDItemScreenCaptureType
com.apple.metadata:kMDItemWhereFroms
com.apple.quarantine

在这种情况下,您将看到 Spotlight 和 Finder 搜索功能可以使用的元数据信息,以及可能与从网络下载的数据相关联的隔离数据,或通过第三方应用程序带到 Mac 上的数据或来源。是的,这与告诉您是否看到 应用程序“无法打开,因为它来自身份不明的开发人员”Gatekeeper 消息 打开某些应用程序或文件时 – 这是扩展属性的常见实际示例。

如何从 Mac 上的文件中删除扩展属性

仍在终端应用程序中?如果没有,请重新启动终端应用程序以开始:

  1. 使用上一步找到要从文件中删除的扩展属性,在此示例中,我们假设它是“kMDItemIsScreenCapture”
  2. 像这样在文件上使用带有 -d 标志的 xattr:
  3. xattr -d com.apple.metadata:kMDItemIsScreenCapture ~/Desktop/samplefile.jpg

  4. 按 Return 键从路径指定的文件中删除定义的扩展属性

在此示例中,从 samplefile.jpg 文件中删除“com.apple.metadata:kMDItemIsScreenCapture”会删除屏幕截图标识符,您可能会从 此技巧用于在 Mac 上查找和显示所有屏幕截图文件,它依赖于附加到屏幕截图文件的扩展属性来定位它们。通过删除该扩展属性,该文件将不再出现在此类搜索中。请注意,使用像 ImageOptim 这样的工具从图像和图片中去除 EXIF 元数据 不会也从图像中删除扩展属性元数据,它只会删除 EXIF 数据——两者是分开的。

您可以使用 xattr 工具以这种方式查看和删除文件、目录和符号链接上的扩展属性,并且您可以根据需要使用通配符将扩展属性删除应用于多个文件。

对于大多数普通 Mac 用户来说,这确实不是应该相关的东西,但对于高级 Mac 用户、修补匠、开发人员、系统管理员、信息安全工作者和许多其他人来说,能够查看或修改扩展属性可能会有所帮助出于特殊原因。