让macos不生成._ “点下划线”开头的缓存文件
在 macos 打开网络共享的文件后,都会生成对应 的 ._ 文件名,
比如打开 //192.168.1.2/path/abc.txt 文件编辑,则会生成 //192.168.1.2/path/._abc.txt 文件。
这个首先可以在 git 提交时 忽略,比如在 .gitignore 中加入
._*
一行配置即可,但是也有办法禁止生成这些文件。
.DS_Store开头的是什么文件
.DS_Store应该就是Finder产生的文件,主要是记录Finder保存的信息,比如窗口大小位置和图标位置,以及目录中的文件等。通过命令只能禁止在网络驱动器中产生,本地和外置存储照样会产生。
._ 开头的是什么文件
._ 文件倒不是缓存,而是元数据。HFS/APFS里额外的元数据通过._开头的文件保存在非Mac格式的卷中,比如颜色标签等信息。上古时期Mac OS的resource fork数据,在非Mac格式的卷中也保存在那些文件里。
如果你不需要保存resource fork中的数据,那 ._ 文件是可以安全删除的。
既然不能禁止Mac OS X生成这些文件,那么就换种思路,在弹出U盘和移动硬盘时自动删除这些文件。
以前有款叫Eject for Windows的软件就可以做到,弹出U盘时,将U盘图标拖动到这个app上,app就会在删除驱动器中的这些文件后自动弹出。
当然这款app已经停更了,现在也有不少替代品,不过大多是付费的。另外,如果用命令行来管理文件,也不会产生这些隐藏文件,只是多数用户用不习惯罢了。
真正成功禁止生成 ._* 文件 的方法为:
在终端命令行执行:
$ defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
即可;