使用Mac的小伙伴,浏览压缩包确认内容是否正确时,是不是经常发现了一个未曾见过的神秘文件 .DS_Store。
此文件名前缀带了”.“,据此推测这应该是一个隐藏文件。
在「访达」里显示一个隐藏文件不是难题,同时按住快捷键⌘⇧.(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 文件不会占用太大的磁盘空间,又对文件夹的显示有帮助,那为什么我们有时候还要删除它呢?下面是一些可能的原因:
你想要重置「访达」中文件夹自定义显示的方式,或者由于原有 DS_Store 文件损坏造成「访达」访问文件夹出现无法调整视图样式、无法查看或排序图标等错误。
当你在 macOS 与电脑之间拷贝或传输文件的时候,DS_Store 文件会默认被包含在内,可能会引起一些不必要的问题。而且,由于其他PC操作系统或软件不认识这个文件,在传输文件时,DS_Store 文件会显现出来,比如有的小伙伴浏览压缩包时,因为不熟悉 macOS 系统中这个文件是什么而出现疑虑。
如何删除 DS_Store 文件?
首先,要声明的一点是,删除 DS_Store 文件完全是安全的操作,它不会损害电脑,也不会造成个人数据丢失。删除后,「访达」在打开文件夹是会以默认显示模式显示文件夹。在你进行某些「访达」操作后,系统又会在后台自动创建 DS_Store 文件。
如果你想删除 DS_Store 文件,可以通过「终端」App 进行删除。
1、在「访达」中打开「应用程序」> 「实用工具」 > 「终端」。
2、定位到你要删除 .DS_Store 文件的文件夹目录下。
3、在「终端」里输入cd
命令,跟上你的目录文件夹路径,例如: cd /Users/<username>/lib
4 、回车。
5、输入命令 find . -name '.DS_Store' -type f -delete
,当然如果只查看文件夹下所有DS_Store文件,只需输入命令 find . -name '.DS_Store'
即可。
6、再次回车。
Git仓库管理忽略 DS_Store 文件
作为一名使用Mac的开发者,在日常开发过程中,经常会使用Git来对代码文件夹进行版本控制。而在默认情况下,Git会把 DS_Store 文件带入版本控制的范围内。
所以可以手动将其踏入 Git 的版本管理忽略列表即可。
总结
1、DS_Store 是系统自动创建的,存储「访达」打开文件夹时自动显示方式的首选项,以便文件夹以创建者预期的方式显示。
2、苹果没有提供完全阻止本地磁盘生成 DS_Store 文件的办法。
3、在压缩文件或Git版本管理中,可以通过修改Git的gitignore配置项来自动忽略 DS_Store 文件。
最后,期望苹果在将来的系统更新中,能够更换这类文件数据的存储方式,不要再自动给用户的目录添加看不到的文件了。