macos挂载网络共享时默认生成.ds_store文件,存在隐私与兼容性风险;执行defaults write com.apple.desktopservices dsdontwritenetworkstores -bool true并重启finder可禁用新建,ventura后需额外禁用desktopserviceshelper或锁定策略文件,再用find清理已有.ds_store。

当你通过Finder挂载SMB、AFP或WebDAV服务器共享目录时,macOS默认会在远程卷根目录及每个子文件夹中写入.DS_Store文件,这些文件会暴露你的文件夹视图偏好、图标排列甚至部分元数据,在协作或跨平台交付时造成隐私泄露和兼容性干扰。
永久禁用网络卷的.DS_Store生成
执行以下命令后,当前用户所有网络挂载卷(含SMBv3/Kerberos认证、NFSv4.1、WebDAV)将不再创建新.DS_Store文件:
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
这一步仅修改当前用户的defaults数据库,【必须重启Finder才能生效】。直接运行 killall Finder 即可,无需重启系统。
注意:该设置对已挂载的卷即时生效,但不会清除已存在的.DS_Store;若此前已生成,需单独清理。
绕过desktopserviceshelper守护进程的强制写入
macOS Ventura(13.x)起,desktopserviceshelper进程会忽略DSDontWriteNetworkStores设置,主动向识别为“非本地”的卷写入.DS_Store。此时需叠加内核级屏蔽:
方法一:禁用桌面服务元数据写入权限
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.desktopserviceshelper.plist
方法二:锁定系统策略文件(Sonoma 14.x+有效)
sudo touch /var/db/.dsstorepolicy
sudo chflags uchg /var/db/.dsstorepolicy
【执行方法二后,desktopserviceshelper将拒绝写入任何卷,包括本地磁盘】。如后续需恢复本地文件夹视图记忆功能,须先执行 sudo chflags nouchg /var/db/.dsstorepolicy 再删除该文件。
清理已存在的.DS_Store文件
第一步:退出所有Finder窗口,避免文件被占用
第二步:在终端中运行
find /Volumes -name ".DS_Store" -type f -delete 2>/dev/null
这条命令只扫描挂载点目录(/Volumes),不遍历系统盘,速度快且安全。若提示“Permission denied”,说明某些卷由root挂载,此时改用:
sudo find /Volumes -name ".DS_Store" -type f -delete
第三步:清空Spotlight索引缓存,防止其触发二次写入
sudo mdutil -E /











