macOS 访问 SMB 共享时主动生成 .DS_Store、.TemporaryItems 等隐藏文件,因其将 SMB 卷视为可写卷并持久化元数据;可通过禁用网络卷元数据写入、关闭 Spotlight 索引、手动清理残留三步阻断。
mac 访问 smb 共享时生成大量隐藏文件(如 .ds_store、.temporaryitems、.fseventsd、.spotlight-v100 等),不是“误操作导致”,而是 macos 在挂载网络卷时主动写入的元数据与索引文件。这些文件默认对用户不可见,但会持续占用空间、拖慢 finder 响应,甚至在断开共享后仍残留,造成磁盘异常膨胀或重复索引。
为什么 SMB 卷上总冒出隐藏文件?
macOS 对网络卷的处理逻辑不同于本地磁盘:它把每个已连接的 SMB 共享视为“可写卷”,自动创建桌面服务缓存、Spotlight 索引快照、文件变更监听目录等。即使你只读浏览,系统也会在根目录或子文件夹中生成 .DS_Store(用于记录图标位置/视图设置)和 .TemporaryItems(用于拖拽暂存)。更关键的是,这些文件不会随断开连接自动删除——它们被持久化保存在远程服务器上,下次再连,还会继续叠加。
三步阻断隐藏文件生成
第一步:禁用 SMB 卷上的本地元数据写入
打开终端,执行以下命令(需管理员密码):
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUEdefaults write com.apple.desktopservices DSDontWriteUSBStores -bool TRUE- 重启 Finder(按住 Option 键右键 Dock 中 Finder 图标 → “重新启动”)
该设置让 macOS 主动跳过在网络卷(含 SMB、AFP、WebDAV)上写入 .DS_Store 和 .TemporaryItems。
第二步:关闭 Spotlight 对 SMB 卷的索引
Spotlight 默认会对已访问的 SMB 路径建立本地缓存索引,路径藏在 /private/var/folders/.../C/com.apple.metadata.mdworker,且不随断开清除:
- 在访达中,选中已挂载的 SMB 卷 → 右键 → “显示简介” → 拉到最下方勾选“防止 Spotlight 索引此卷”
- 或终端执行:
mdutil -i off /Volumes/你的共享卷名(将“你的共享卷名”替换为实际挂载名)
第三步:清理已有残留并阻止重建
已生成的隐藏文件需手动清理,并停用自动重建机制:
- 在 SMB 卷根目录下,打开终端(访达中按
Cmd + Shift + U打开终端,它会自动 cd 到当前路径),运行:find . -name ".DS_Store" -delete; find . -name ".TemporaryItems" -delete; find . -name ".fseventsd" -delete - 若远程服务器支持,建议在 Windows 或 NAS 后台设置“禁止客户端写入隐藏系统文件”(如 Samba 配置中添加
veto files = /.DS_Store/.TemporaryItems/.fseventsd/)
额外提醒:别忽略凭证缓存引发的连锁写入
macOS 的 SMB 客户端在首次成功认证后,会将签名密钥、会话票据缓存在 ~/Library/Keychains/login.keychain-db 及临时缓存区。若凭据失效或版本错配,系统可能反复重试并触发新一轮元数据写入。建议定期检查 Keychain 中是否存有多个同名 SMB 条目(搜索“smb://”),删掉过期或重复项,避免隐性冲突。

















