··

macOS:解决“._文件”只能这样做

前言

在 Mac 上使用移动硬盘时,我们会发现,每一个文件都会自动生成一个以 ._ 开头的隐藏文件(特别是在使用 FAT32、exFAT、NTFS 等非苹果原生文件系统时)。这些文件是 macOS 为了保存文件的元数据(如 Finder 标签、颜色、权限信息等)而额外生成的。

然而,如果你在这些磁盘上运行一些 Windows 程序、游戏或工具,这些 ._xxx 文件可能会被误识别为有效数据,导致无法加载、运行异常,甚至报错。

Tip

在 macOS 中,. 开头的文件为隐藏文件。可以使用 Command + Shift + . 显示/隐藏隐藏文件。 但 ._ 文件属于 AppleDouble 格式,即使开启显示也可能看不见。你需要用终端 ls -la 才能看到它们的存在。

解决方案

截至2025 年 7 月 16 日,Apple 官方没有提供任何关闭或禁用 .DS_Store._xxx 文件写入外部磁盘的选项。因为这些文件是系统功能依赖的一部分,所以在可预见的未来,这个机制也不会改变。

因此,唯一真正有效的解决方案是:

将移动硬盘的文件系统修改为 macOS 原生的 APFS 或 HFS+,彻底杜绝 ._ 文件的生成。

Caution

更改为APFS或者HFS+后,Windows会无法直接识别这个移动硬盘,需要装额外软件。如果这个移动硬盘有在Windows上使用的需求,建议不要修改。

这个方案需要你完成以下三步操作:

步骤一:备份移动硬盘

在格式化之前,你需要先将移动硬盘的内容备份到另一个设备(如 NAS、另一块硬盘、电脑本地磁盘等)。

我们推荐使用 rsync 工具,它支持断点续传、跳过已复制文件、速度更快,更安全。

Terminal window
rsync -avh --progress \
--exclude='._*' \
--exclude='.DS_Store' \
/Volumes/YourOldDisk/ /Volumes/BackupDisk/BackupDrive/

参数解释:

  • -a:归档模式,保留权限、时间戳等;
  • -v:显示详细过程;
  • -h:以人类可读形式输出大小;
  • --progress:显示实时进度;
  • --exclude='._*':排除所有 ._ 文件;
  • --exclude='.DS_Store':排除 .DS_Store
  • /Volumes/YourOldDisk/:你当前的移动硬盘;
  • /Volumes/BackupDisk/BackupDrive/:你的备份目标目录(例如 NAS 上的路径)。

你可以随时中断该命令,再次运行后 rsync 会自动断点续传,非常安全。

步骤二:格式化移动硬盘并更改文件系统

Warning

此操作会清空移动硬盘上的所有内容,请务必确保你已经完成备份。

格式化步骤:

  1. 打开 磁盘工具(Disk Utility)
  2. 点击左上角 “显示所有设备”
  3. 找到你的移动硬盘(不是分区,是设备);
  4. 点击上方的 “抹掉”
  5. 设置如下选项:
    • 名称:你喜欢的名称(如 MyAPFSDisk);
    • 格式:APFS
    • 方案:GUID 分区图(GUID Partition Map)
  6. 点击“抹掉”开始格式化。

等待格式化完成后,你的磁盘就已经切换为 APFS 文件系统。

Note

APFS 是 Apple 为 SSD 优化的新一代文件系统,支持快照、文件克隆等功能,推荐所有 macOS 用户使用。

步骤三:恢复数据回移动硬盘

完成格式化后,你可以将之前备份到 NAS 或另一硬盘中的数据恢复回来。仍然使用 rsync 即可,速度更快,而且不会恢复 ._ 文件。

Terminal window
rsync -avh --progress \
--exclude='._*' \
/Volumes/BackupDisk/BackupDrive/ /Volumes/MyAPFSDisk/

结语

如果你在使用移动硬盘的过程中频繁遇到 ._xxx 文件导致的兼容性问题,特别是在跨平台(Mac ↔ Windows)使用时,最干净彻底的方案就是切换为 APFS 或 HFS+ 文件系统。虽然会涉及格式化和备份,但从长远来看,能显著提升你的文件体验,并避免奇怪的兼容性bug。