如何禁止 Mac OS X 在外接设备上生成 .DS_Store 文件?以及如何批量删除 .DS_Store 文件?

简介: 如何禁止 Mac OS X 在外接设备上生成 .DS_Store 文件?以及如何批量删除 .DS_Store 文件? http://www.java2class.net/bbs/viewthread.php?tid=254 背景信息 .DS_Store文件(Desktop Services Store)是一个隐藏的文件,在每一个目录下都有,它存放着这个文件目录的一些特定属性信息 Metadat
如何禁止 Mac OS X 在外接设备上生成 .DS_Store 文件?以及如何批量删除 .DS_Store 文件? 
http://www.java2class.net/bbs/viewthread.php?tid=254  

背景信息  
.DS_Store文件(Desktop Services Store)是一个隐藏的文件,在每一个目录下都有,它存放着这个文件目录的一些特定属性信息 Metadata,比如图标大小、位置、背景图片等属性;有点儿类似于 Windows 操作系统上的 Thumbs.db 、Desktop.ini 文件。 

如果在 Mac OS X 没有打开隐藏文件进行显示的话,就在 Finder 中看不到这个 .DS_Store 文件,不会觉得碍事。但是通常在与其他机器或USB文件交换到其他操作系统时,如在Windows操作系统下,同样也打开显示隐藏文件时,这时就会对这些隐藏文件感觉到特别的多余,以及占用空间之类的XYZ;以及对文件进行压缩时,会包含在压缩文件里之类的不爽,对外接设备或SMB、AFP远程网络连接之类的。 

解决方法  
进入Terminal,然后执行 defaults write com.apple.desktopservices DSDontWriteNetworkStores true ,然后注销再登录或直接重启 Mac OS X; 
机器上有多个用户,则所有用户都如此操作一次;或者将新生成的 com.apple.desktopservices.plist 文件拷贝到各个用户的 ~/Library/Preferences 目录下即可。 

虽然这个方法可以禁止 Mac OS X 在外接设备上面再次生成 .DS_Store 文件,但是目前已经存在的文件却无法通过帮你也直接删除,只能手工埋批量删除之,执行如下命令即可: 
find / -name ".DS_Store" -type f -delete 

但是以上命令仍无法禁止在本机文件系统上生成 .DS_Store 文件!!! 

针对这个情况可以使用 Asepsis :  http://asepsis.binaryage.com  ,它将创建 .DS_Store 文件重定向到另一个指定的目录中去,从而阻止了在每一个文件目录中都生成 .DS_Store 文件,默认目录为 /usr/local/.dscage ,通过执行 asepsisctl clean 命令可以将重定向的目录中所生的文件清空之。 

实现原理  
Mac OS X实现了一个私有的系统框架 DesktopServicesPriv,这个框架负责创建和操作 .DS_Store 文件,Finder 以及其他的应用程序也使用这个框架,DesktopServicesPriv 使>用标准的 libc 调用来操作 .DS_Store 文件,于是通过对 DesktopServicesPri 进行封装,在创建和操作 .DS_Store 文件时,加上指定的目录作为前缀,即可将在每一个目录下>创建一个 .DS_Store 文件的操作重定向到某一个特定的目录中去了。 

文件目录需要简洁,这样世界才清静啊!  

相关参考资料链接:  
http://en.wikipedia.org/wiki/.DS_Store  
http://danilo.ariadoss.com/how-to-recursively-remove-ds_store-files-on-mac-os-x/  
http://www.chrisnovoa.com/os-x-lion-ds_store-disabling/  
http://support.apple.com/kb/HT1629
相关文章
|
22天前
|
iOS开发 MacOS Windows
Mac air使用Boot Camp安装win10 ,拷贝 Windows 文件时出错
Mac air使用Boot Camp安装win10 ,拷贝 Windows 文件时出错
|
1天前
|
存储 Java iOS开发
MacOS环境-手写操作系统-43-dir命令的实现 和 文件写入
MacOS环境-手写操作系统-43-dir命令的实现 和 文件写入
9 0
|
1天前
|
Linux C语言 iOS开发
MacOS环境-手写操作系统-06-在mac下通过交叉编译:C语言结合汇编
MacOS环境-手写操作系统-06-在mac下通过交叉编译:C语言结合汇编
5 0
|
2月前
【科研技巧】Mac 系统如何给Endnote 20添加某篇文献信息和附加PDF文件
Mac系统下使用Endnote 20添加文献信息和PDF文件的详细步骤,包括下载.enw文件和在Endnote中导入这些文件的方法。
117 6
|
2月前
|
Linux
【Linux 或Mac系统】自动生成项目结构目录并放在README.md文件中
如何在Linux或Mac系统中使用tree命令自动生成项目结构目录,并将其格式化后放入项目的README.md文件中以展示项目结构。
84 1
|
2月前
|
存储 缓存 算法
OS—设备独立性软件
OS—设备独立性软件
52 0
|
2月前
|
SQL 关系型数据库 MySQL
Mac常用sh文件
Mac常用sh文件
24 0
|
2月前
|
内存技术
Mac 修改文件默认打开方式
Mac 修改文件默认打开方式
11 0
|
2月前
|
Windows 内存技术
Mac 播放 swf Flash文件
Mac 播放 swf Flash文件
18 0
|
4月前
|
缓存 Linux Windows
初识Linux操作系统(根目录下的重要文件)(命令提示符的含义)
Linux系统基于"一切皆文件"的理念,重要文件分布在如/root(root用户目录)、/home(普通用户目录)、/etc(应用配置)、/dev(设备文件)、/boot(内核及启动文件)、/proc(动态系统信息)、/lib64(库文件)、/opt(软件存放)、/tmp(临时文件)。"[root@localhost ~]#"代表管理员在root目录,"$"代表普通用户。创建新用户用`useradd`命令。调节终端字体大小:Ctrl+Shift++增大,Ctrl+减号缩小。绝对路径从根目录开始,相对路径从当前目录开始。