三三世界-百宝箱

文章 分类 标签
130 9 247

公告

暂无站点公告

Mac系统中的DS_Store文件是什么,如何处理

三三 2024-04-02 102 0条评论 服务器配置Linux使用 DS_Store 文件

首页 / 正文

.DS_Store 文件究竟是什么?

DS_Store,英文全称是 Desktop Services Store(桌面服务存储),开头的 DS 是 Desktop Services(桌面服务) 的缩写。它是一种由macOS系统自动创建的隐藏文件,存在于每一个用「访达」打开过的文件夹下面。

虽然不能在「访达」中直接看到它,但是通过「终端」App,可以输入ls -la命令列出。同时,通过file命令,可以显示出其文件类型,即”Desktop Services Store“。

DS_Store 文件的主要作用,是存储当前文件夹在桌面显示相关方面的一些自定义属性,包括文件图标的位置、文件夹上次打开时窗口的大小、展现形式和位置等。这有助于保留为特定文件夹配置的设置。

例如,将桌面文件夹设置为查看按名称排序的图标,同时将下载文件夹配置为将文件显示为列表并按日期排序,最近修改的先显示

后来,苹果又往里面加入了一些和文件注释相关的自定义信息。(这部分注释信息在最新的macOS中,同时被存储在文件自身的扩展文件属性中,这里仅作为了备份)

使用Hex Fiend查看.DS_Store文件里面存储了和右击文件「显示简介」中我写的注释一样的内容
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 文件会显现出来,因为不熟悉 macOS 系统中这个文件是什么而出现疑虑。
3,可能因为这个文件暴露一些关于你电脑的详细信息,从而造成一定的安全隐患。

如何删除 DS_Store 文件?

首先,要声明的一点是,删除 DS_Store 文件完全是安全的操作,它不会损害电脑,也不会造成个人数据丢失。删除后,「访达」在打开文件夹是会以默认显示模式显示文件夹。在你进行某些「访达」操作后,系统又会在后台自动创建 DS_Store 文件。

如果你想删除 DS_Store 文件,可以通过「终端」App 进行删除。

1    在「访达」中打开「应用程序」> 「实用工具」 > 「终端」。
2    定位到你要删除 .DS_Store 文件的文件夹目录下。
3    在「终端」里输入`cd`命令,跟上你的目录文件夹路径,例如: `cd /Users/username/pictures`。
4    回车。
5    输入命令 `find . -name ‘.DS_Store’ -type f -delete`。
6    再次回车。

到这里,当前文件夹目录下的所有 .DS_Store 文件都会消失。

某些情况下的 DS_Store 文件忽略方案

删除操作有些麻烦,而且有时候在某些情况下,我们并不一定要通过删除才能解决 DS_Store 文件带来的问题。

在我平时的工作中,经常遇到的情况就有两种:

1 在压缩文件夹时不想把 DS_Store 文件带进压缩包。
2 在使用版本控制Git管理代码仓库文件夹时,不想把 DS_Store 文件带入仓库。

如果在不删除 DS_Store 文件的条件下,解决上面两种情况下的需求:

使用某些第三方压缩软件压缩文件夹

这里我使用一款叫做 Keka 的解压缩软件,在它的偏好设置中,勾选“排除 Mac 资源文件(例如:.DS_Store)”。
然后,使用它来压缩文件夹时,它会自动忽略 DS_Store 文件。再次浏览压缩后的压缩包,再也看不到 DS_Store 文件了。

Git仓库管理忽略 DS_Store 文件

作为一名使用Mac的开发者,在日常开发过程中,经常会使用Git来对代码文件夹进行版本控制。而在默认情况下,Git会把 DS_Store 文件带入版本控制的范围内。所以,可以手动将其踏入 Git 的版本管理忽略列表。

1. 将 . DS_Store 加入全局的 .gitignore 文件,执行命令:
echo .DS_Store >> ~/.gitignore_global
2. 将这个全局的 .gitignore 文件加入Git的全局config文件中,执行命令:
git config --global core.excludesfile ~/.gitignore_global

这样.DS_Store 再也不会出现在你项目的Git代码仓库中了!

总结

1,DS_Store 是系统自动创建的,存储「访达」打开文件夹时自动显示方式的首选项,以便文件夹以创建者预期的方式显示。
2,苹果没有提供完全阻止本地磁盘生成 DS_Store 文件的办法。
3,可以通过「终端」里输入命令行的方式删除它,不会造成任何电脑损害。但是删除后,只要继续使用「访达」,它有会在背后默默自动创建,所以无法也没必要”赶尽杀绝“。
4,在压缩文件或Git版本管理中,可以通过第三方软件Keka或修改Git配置项来自动忽略 DS_Store 文件。
5,最后,期望苹果在将来的系统更新中,能够更换这类文件数据的存储方式,不要再自动给用户的目录添加看不到的文件了。

一些其他的建议:

可以使用 BlueHarvest 这个 App 来自动清理 DS_Store 文件。

可以自动或者按计划任务时间进行清理非 Mac 磁盘、网络磁盘和指定的某一些文件夹,清理的内容不止是DS_Store 文件,还可以清理 Windows 下的 Desktop.ini 和 Thumbs.db 等文件。
DS_Store 是用来存储这个文件夹的显示属性的:比如文件图标的摆放位置。

转自知乎:Jim Ye

评论(0)

当前没有评论,还不快来留下第一个脚印吧


Copyright 2021 三三世界-百宝箱. All Rights Reserved.

最新评论

  • 三三

    @Doug Shume it's ok for me , you can post here.

  • refugiaguenther

    Saved as a favorite, I like your website!

  • josefa

    If some one wishes to be updated with hottest technologies after that he must be visit this site and be up to date daily.

  • Penzu

    Heello would you mind sharing which blog platform you're using? I'm planning to start my own blog in the near future but I'm having a tough time making a decision between BlogEngine/Wordpress/B2evolution and Drupal. The reason I ask is because your layout seems different then moost blogs and I'm looking for something completely unique. P.S Apologies forr being off-topic butt I had to ask!

  • Yupoo Fendi

    Thanks to my father who shared with me regarding this webpage, this website is genuinely amazing.

  • Doug Shume

    Hi, I have an overflow of customers that I'd like to send to you but I want to make sure you can handle more leads, let me know if you'd like me to send you more info.

  • SuperWind

    zh.us.to 有效
    kms.03k.org 有效
    kms.chinancce.com
    kms.shuax.com 有效
    kms.dwhd.org 有效
    kms.luody.info 有效
    kms.digiboy.ir 有效
    kms.lotro.cc 有效
    www.zgbs.cc 有效
    cy2617.jios.org 有效

  • 三三

    @         权限问题,试试sudo 再加命令。

  •         

    你好提示Permission denied 怎么办啊

日历

2024年05月

   1234
567891011
12131415161718
19202122232425
262728293031 

文章目录

上一张 下一张