经常码代码的小伙伴应该知道这个文件,它会出现在每一个项目文件夹中,但是在访达中没有显示,真是难以想象的烦人。



此文件名前缀带了”.“,据此推测这应该是一个隐藏文件。
在「访达」里显示一个隐藏文件不是难题,但即便我们按快捷键 ”Command+Shift+。“,成功显示隐藏文件,依然看不见这个文件!
那么,这个神秘的文件”.DS_Store“究竟是何方神圣?
为什么苹果要极力隐藏它,即使在”显示隐藏文件“模式下依然不可见?
.DS_Store 文件究竟是什么?
DS_Store,英文全称是 Desktop Services Store(桌面服务存储),开头的 DS 是 Desktop Services(桌面服务) 的缩写。
它是一种由macOS系统自动创建的隐藏文件,存在于每一个用「访达」打开过的文件夹下面。虽然不能在「访达」中直接看到它,但是通过「终端」App,可以输入`ls -la`命令列出。同时,通过`file`命令,可以显示出其文件类型,即”Desktop Services Store“。
DS_Store 文件的主要作用,是存储当前文件夹在桌面显示相关方面的一些自定义属性,包括文件图标的位置、文件夹上次打开时窗口的大小、展现形式和位置等。这有助于保留为特定文件夹配置的设置,例如,将桌面文件夹设置为查看按名称排序的图标,同时将下载文件夹配置为将文件显示为列表并按日期排序,最近修改的先显示。
后来,苹果又往里面加入了一些和文件注释相关的自定义信息。(这部分注释信息在最新的macOS中,同时被存储在文件自身的扩展文件属性中,这里仅作为了备份)
DS_Store 文件被苹果作为底层数据隐藏在系统中,不期望用户接触到。它存储的元数据仅仅被「访达」用于文件夹的自定义显示。不过它不会占用太多的存储空间,所以不用过于担心。
能否阻止 DS_Store 文件的自动生成?
DS_Store 文件是由系统自动创建的,它的存在有时候会对某些场景下的用户体验产生一些负面的影响。
为了加快网络磁盘的浏览速度,苹果提供了针对通过SMB共享的网络磁盘上DS_Store文件的阻止生成方案:
1. 在「访达」中打开「应用程序」 > 「实用工具」 > 「终端」。
2. 输入以下命令:
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE
3. 然后退出登录 macOS 账户并重新登录。
要重新启用,请输入以下命令:
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool FALSE
但是,以上命令只是针对网络磁盘,想要阻止本地磁盘中 DS_Store 文件的自动生成?
唯一的方式就是停止使用「访达」,不过我想大家应该不会考虑这么做。
何时要删除 DS_Store 文件?
既然 DS_Store 文件不会占用太大的磁盘空间,又对文件夹的显示有帮助,那为什么我们有时候还要删除它呢?
1、你想要重置「访达」中文件夹自定义显示的方式,或者由于原有 DS_Store 文件损坏造成「访达」访问文件夹出现无法调整视图样式、无法查看或排序图标等错误。
2、当你在 macOS 与电脑之间拷贝或传输文件的时候,DS_Store 文件会默认被包含在内,可能会引起一些不必要的问题。而且,由于其他PC操作系统或软件不认识这个文件,在传输文件时,DS_Store 文件会显现出来,比如压缩包,比如 git。



