luckyyyyy / blog

William Chan's Blog
https://williamchan.me/
172 stars 28 forks source link

阻止macOS在网络共享时创建资源分支(Resource Fork)和扩展属性(Extended Attributes) #73

Open luckyyyyy opened 1 year ago

luckyyyyy commented 1 year ago

在macOS中,以"._"开头的文件是用于存储资源分支(Resource Fork)和扩展属性(Extended Attributes)的文件。资源分支包含与文件相关的附加数据,如图标、元数据、自定义属性等。扩展属性是文件的额外信息,可以包括访问权限、标签、元数据等。

macOS使用资源分支和扩展属性来维护文件的完整性和特殊功能。当你将文件复制到非本机文件系统(如FAT32或exFAT格式的驱动器)时,这些文件系统无法直接存储资源分支和扩展属性。为了保留这些信息,macOS会创建以"._"开头的隐藏文件,其中包含了原始文件的资源分支和扩展属性。

这种处理方式确保了文件在非本机文件系统上的互通性,尽管这些文件可能会被视为冗余文件或垃圾文件。在大多数情况下,这些"._"文件对于正常使用来说并没有太大影响。然而,有时这些文件可能会在跨平台文件共享、网络传输或外部存储设备上引起不便。

当将文件复制到非本机文件系统(例如使用FAT32或exFAT格式的USB驱动器)时,macOS会创建"dot underscore"文件。这些文件存储了在这些文件系统上不支持的扩展属性和资源分支数据。要防止创建这些文件,可以禁用macOS上的资源分支和扩展属性的创建。

你可以在Mac的终端中执行以下命令来实现:

defaults write com.apple.desktopservices DSDontWriteNetworkStores true

这个命令将阻止macOS在网络驱动器上创建这些辅助文件。然而,如果你想在所有驱动器上(包括外部驱动器)阻止创建"dot underscore"文件,可以使用以下命令:

defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true

执行完命令后,重新启动Mac以应用更改。macOS在将文件复制到外部驱动器时将不再创建"dot underscore"文件。

请注意,禁用创建这些文件可能会导致一些与文件相关的元数据或扩展属性丢失。此外,此设置适用于每个用户,如果Mac上有多个用户账户受影响,你可能需要为每个用户账户执行该命令。