关于“.DS_Store”文件

说明解析

“.DS_Store”文件:DS_Store 是用来存储这个文件夹的显示属性的:比如文件图标的摆放位置。删除以后的副作用就是这些信息的失去。(当然,这点副作用其实不是太大)

“.DS_Store”是Mac OS中 保存文件夹自定义属性隐藏文件** ,比如:文件的图标位置、视图设置 或 背景色(相当于Windows下的desktop.ini )。

尽管这些文件本来是为Finder所使用,但它们被设想作为一种更通用的有关显示设置的元数据存储,诸如图标位置和视图设置。
例如,在Mac OS X 10.4 "Tiger"中“.DS_Store”包含了一文件夹的所有文件的Spotlight注释。 然而,在Mac OS X 10.5 "Leopard"中这种方式又被更改了,注释(现称为关键字 )被改成存储在了扩展文件属性 中。

让隐藏文件 显示出来的方式,请参考:展示Mac里面Finder的隐藏文件


网站上的“.DS_Store” 文件 处理

若在和别人交换文件(或你做的网页需要上传的时候),应该把 “.DS_Store” 文件删除比较妥当,因为里面包含了一些你不一定希望别人看见的信息(尤其是网站,通过 “.DS_Store” 可以知道这个目录里面所有文件的清单,很多时候这是一个不希望出现的问题)

$filepath = images;
$handle = opendir($filepath);
while (false != ($file = readdir($handle))) {
if ($file != . && $file != .. && $file != .DS_Store && $file != index.html && $file != index.htm && $file != index.php) {
if ($output) $output .= |;
$output .= $file;
closedir($handle);
echo &files=$output&; //输出遍历此文件夹所有的内容
?>


常见的处理:

点击这个网址:http://asepsis.binaryage.com/ ,下载、安装好之后,重启mac。ASEPSIS 会把所有的“.DS_Store” 重定向到 "/usr/local/.dscage"路径
然后可以用以下指令删除mac上所有的“.DS_Store”:

find ~ -name ".DS_Store" -delete

// 或者
find <your path> -name ".DS_Store" -delete



对“.DS_store”的 生死操作:
1.禁止 “.DS_store”生成
打开terminal,复制黏贴下面的命令,回车执行,重启Mac即可生效。

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool TRUE

2.恢复 “.DS_store”生成

defaults delete com.apple.desktopservices DSDontWriteNetworkStores

3.删除 所有目录的“.DS_store”文件:
terminal中输入:

sudo find / -name ".DS_Store" -depth -exec rm {} \;

⭐️:删除 当前目录的“.DS_store”文件

find . -name '*.DS_Store' -type f -delete



项目工程中 处理

而在xcode中,使用 集中式svn分布式git版本管理工具 进行管理的时候,也会多出一个“.DS_Store”文件(用于存储当前文件夹的一些 Meta 信息)。
而在每次提交代码时,都需要在代码仓库的 “.gitignore”文件 中 声明,忽略这类文件。

⭐️当然有方法可以全局性的忽略:
1.创建 “~/.gitignore_global” 文件,把需要全局忽略的文件类型塞到这个文件里。

# .gitignore_global
####################################
######## OS generated files ########
####################################
.DS_Store
.DS_Store?
*.swp
._*
.Spotlight-V100
.Trashes
Icon?
ehthumbs.db
Thumbs.db
####################################
############# packages #############
####################################
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip


2.在自己的 “~/.gitconfig” 中引入 “.gitignore_global”。
“.gitconfig” 文件 🌰:

[user]
    name = goyohol
    email = xxxxx@163.com
[push]
    default = matching
[core]
    excludesfile = /Users/goyohol/.gitignore_global


搞定之后!在所有的文件夹下 “.DS_Store”、“.swp”、“.zip” 等文件类型会被 Git 自动忽略。




本文参考 :
知乎 : .DS_Store 文件是什么?

stackoverflow : .gitignore all the .DS_Store files in every folder and subfolder
stackoverflow : Global Git ignore

OSXDaily : What is a .DS_Store file?

github : gitignore/Global/















goyohol's essay

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 :关于.DS_Store是什么可以参考另一文章 如果删除GIT中的.DS_Store 简单的说Mac每个目录...
    跨境大师兄阅读 64,735评论 8 59
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,853评论 18 139
  • Mac中每个目录都会有个文件叫.DS_Store,用于存储当前文件夹的一些Meta信息。每次提交代码时,我都要在代...
    shier阅读 6,574评论 4 4
  • 片段介绍了另外一种平息愤怒的方法:1.切断愤怒源头,2.获取缓和性信息:了解对方和自己发生冲突背后的原因。这种方法...
    小太阳and小煤球阅读 204评论 0 0
  • 最近流行慢生活。人们向往以前的慢悠悠的日子。 是啊。在快节奏的时代,忙碌的人们压力大,内心浮躁。许多人向往放慢脚步...
    一世福缘阅读 5,239评论 106 313