如何禁止 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)是一个隐藏的文件,在每一个目录下都有,它存放着这个文件目录的一些特定属性信息 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

时间: 2024-10-14 18:32:30

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

如何彻底删除 Mac OS X 里那巨大的 sleepimage 文件

  用 SSD 的朋友硬盘空间不大,需要节省.而 Mac OS X 的冬眠模式会自动放一个和内存等大的名叫「sleepimage」的文件到 /private/var/vm 目录,换言之,你的内存是多少 GB,就有多少 GB 的硬盘空间会被这个文件吃掉. 以前介绍过用命令行方法禁用冬眠模式,只要在终端里运行 sudo pmset -a hibernatemode 0 即可. 但这招在 Mac OS X 10.7 (Lion) 上似乎行不通,禁用之后删除 sleepimage,过不了多久它又会死灰复

Mac OS X 内核Rootkit开发指南

1.引言  1.1 背景介绍          困 扰着不同操作系统的Rootkit已经由来已久,Linux,Windiws,还有各种类BSD等系统都受到了Rootkit的极大危害.目前广泛使用的 一类"内核Rootkit",是原来"文件转移Rootkit"的衍生和发展.这种发展趋势的必然性,来源于Rootkit和Osiris. Tripwire等安全软件之间的竞争--后者的出现使得Rootkit开发者不得不在内核空间中寻找更加隐秘的途径,以达到渗透和颠覆系统的目的

苹果Mac OS X Snow Leopard:无与伦比的革新

苹果公司于当地时间6月9日下午,在一年一度的WWDC 08大会(The Apple Worldwide Developers Conference 2008)的新品展示活动上,向各路开发人士介绍了下一代Mac OS X操作系统,代号为Snow Leopard雪豹,预计在一年内正式发布. 据介绍,Snow Leopard将把主要注意力用在提高性能和稳定性上,该版本将对多核心处理器进行优化,引入一项名为"Grand Central"的新技术,简化开发者为多核心处理器进行编程的过程.该版本还

另类Mac OS X 10.9启动U盘制作方法

10.9GM的文件结构已经改变,不能像以前一样直接把InstallESD.dmg文件恢复到U盘的方法制作安装盘.下面我们使用新方法: 准备: 8G 或 8G以上优盘一枚 10.9GM安装文件 clover程序 1.首先把U盘格式化成GUID分区格式 --分区用 Mac OS 扩展 (日志式) 2.把下载下来的10.9GM安装文件提取出放到桌面上 "安装OS X Mavericks.app" 3.在安装文件上 右键--显示包内容 进入目录 /Contents/Resources/ 4.复

在Mac OS X Lion下修改Hosts 的4种方法

  一名刚刚使用 Mac OS X Lion 系统的朋友问我怎么该系统下修改 Hosts 文件,说网上搜了很多办法都不管用,只要编辑 Hosts 文件就出现"你不是文件 hosts 的所有者,因此没有权限写到该文件"的提示,要解决这个权限问题又比较麻烦,对于刚刚使用 Mac 的用户来说并不容易整明白.因此,就有了这篇小贴士,下面我分享四种方法来修改 Mac OS X Lion 系统中的 Hosts 文件,这四种方法都不会出现权限提示,而且 Mac OS X Snow Leopard(1

monoTouch开发(1):win7 + vmware下安装mac os

iPhone现在越来越火爆了,很多原本在PC上的互联网应用都纷纷推出了iPhone客户端(比如携程,新浪微博),iPhone的最佳开发环境是mac OS + iphone真机,一般情况下这个有点难满足.(想起一句网络经典语言:用钱能解决的问题都不是问题,问题是TM没钱) 但是可以在windows环境(比如win7)中,通过虚拟机安装mac os来搭建环境,下面将讲解vmware下如何安装mac os 10.6(雪豹操作系统). 1.准备工作,先到网上down下面这些软件   a. vmware7

mac os x-无法访问部署在mac服务器到虚拟机Ubuntu端口映射做成的服务器上的网站

问题描述 无法访问部署在mac服务器到虚拟机Ubuntu端口映射做成的服务器上的网站 各位朋友们好,有一个问题恳请部署网站的大侠们能指点我一下:我之前有一台阿里云服务器是Ubuntu系统的,买了公网ip(113.19.3.34)和域名(www.appoperation.com),我把自己的网站部署上去时,是在Ubuntu系统的/etc/hosts文件中加上以下一行:113.19.3.34 www.appoperation.com 但是由于老师的要求,希望现在把这个网站部署到一台mac os x系

《Adobe Audition CC经典教程》——1.2 Mac OS X 系统的音频设置

1.2 Mac OS X 系统的音频设置 本课介绍如何配置Audition,使之能够正确调用Mac计算机的输入/输出功能.Audition CC支持Mac OS X 10.7和10.8版本(分别被称为Lion和Mountain Lion). 1.用3.5mm连接线连接音源与Mac计算机的3.5mm线路输入插孔.如果不使用内建扬声器,则请将入耳式/头戴式耳机或其他监听系统的输入插头连接到Mac计算机的线路输出插孔或耳机插孔. 2.打开Audition,选择"Audition>首选项>音

iOS - Mac OS X 终端命令

Mac OS X 终端命令 1)显示当前目录的路径 pwd 2)列出文件 ls 参数 目录名 参数: -w 显示中文,-l 详细信息, -a 包括隐藏文件,每一行开头是 "d" 则为文件夹,开头是 "-" 则为文件. 例: 看看驱动目录下有什么:ls /System/Library/Extensions 3)打开目录 cd 目录名 cd .. :返回上一级目录 cd ../.. :cd ../.. /..:返回上两级/三级目录 cd . :当前目录 例:想到驱动目录