Files
StudyDiary-20261009/04-博客发布/040-系统技术/恼人的.DS_Store.md
CrazyJasonwell e97be9ac8c commit all
2026-10-09 22:06:40 +08:00

40 lines
2.5 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
profileName: Happy Again
postId: "3555"
postType: post
categories:
- 15
---
.DS_Store是什么?
.DS_Store的本质其实是桌面服务的“记忆本”,全称是Desktop Service Store(桌面服务存储)。它不是系统核心文件,更像是服务于访达的“秘书”。核心功能就是记录你打开这个文件夹时的样子”。它就是一个纯纯的文件夹视图元数据存储文件,主要职责就是存储其所在文件夹的自定义视图属性。默认是隐藏文件,在访达里里按 Command + Shift + . 才能看到它。
相信Mac用户也许都经历过这样的至暗时刻,每次把文件拷给用Windows的同事,或者往服务器上传东西,总能看到那个阴魂不散的 .DS_Store,不管你删多少次,下次再打开又出现了,简直成了强迫症和跨平台用户的噩梦。
程序员同学在使用Git/SVN等版本控制时 .DS_Store 文件经常被不小心提交到代码仓库里。每次你调整了文件夹视图(可能只是点了一下),它都可能变化,导致仓库里充斥大量与代码无关的变更记录。团队协作时,别人拉取代码也会收到这些垃圾文件,极度影响效率和仓库清洁度。
其实这还不是终极噩梦,如果你从Mac拷贝文件到NAS中,有时会发现报错:“发生意外的错误-8062”,单单只拷贝单个文件,不会报这个错误,如果拷贝一个目录,经常出现8062,你会左思右想,到底是哪里出了问题?真的觉得Apple这个设计很无趣,简单的文件拷贝居然还需要技术!是的,如果没有刷子,还真的搞不定!
很幸运,在NAS设置中仔细检查,在SMB协议中,有一个配置项设置看禁止.DS_Store文件,原来不能拷贝的原因就在这里!于是开始删除当前目录中的所有.DS_Store文件之后再复制文件,呵呵,成功了!不过想想,总觉得苹果为什么不放弃这个恼人的.DS_Store,这个坑真的很大,只能说我很幸运,是因为我碰巧去研究了一下NAS服务器上的SMB设置才偶然找到解决这个问题的办法!
分享几个规避办法:
1. 彻底不要.DS_Store
禁止生成:
```
defaults write com.apple.desktopservices DSDontWriteNetworkStores true
```
是否生效:
defaults read com.apple.desktopservices DSDontWriteNetworkStores
需要重新启动。
2. 临时删除.DS_Store
如果发生8062错误,可以考虑操作:
删除当前目录的.DS_store 文件
```
find . -name '.DS_Store' -type f -delete
```
就可以正常拷贝文件到NAS了。