如何禁止 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-t ... -files-on-mac-os-x/
http://www.chrisnovoa.com/os-x-lion-ds_store-disabling/
http://support.apple.com/kb/HT1629
如何禁止 Mac OS X 在外接设备上生成 .DS_Store 文件?以及如何批量删除 .DS_Store 文件?的更多相关文章
- Mac OS X:在标题栏上显示目录完整路径
众所周知mac的finder是不带路径显示的,你进入某个文件夹只会显示当前文件夹的名字而已.虽然你可以在finder的菜单栏中点“显示”-“显示路径栏”把路径栏调出来,但是这样只会不必要的增加find ...
- 在Mac OS X苹果lion系统上制作USB启动盘
本文翻译自:http://evan.borgstrom.ca/post/1314205955/osx-bootable-usb-from-iso 我也就不按照原文上一句句的翻译了,只说几个比较重要的步 ...
- Appium禁止appium setting和unlock在设备上重复安装
1.文件:/Applications/Appium.app/Contents/Resources/node_modules/appium/node_modules/appium-android-dri ...
- mac下批量删除.svn文件
mac下.svn是隐藏文件,而且即使我们调成可见的,一个一个删也很麻烦.今天正好同事问起来这个命令,于是想可能有些人也需要,于是还是放到博客里吧 命令比较简单,其实就是一条linux命令,打开终端,首 ...
- VMware 虚拟机安装 Mac OS X Mountain Lion 苹果系统
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- 系统重装 如何在PC上安装Mac OS,苹果操作系统
[苹果系统 无影精品]<精睿 无影技术Mac OS X 中文优化正式会员版V10.14和V10.16>◆ 系统前沿:==================================== ...
- 黑苹果之DELL台式机安装Mac OS X 10.13.6版本操作系统
由于本人所在的公司一般都是DELL的品牌台式机,所以以DELL台式机做小白鼠.记得在2012年的时候,在当时的那家公司为了学习自学IOS开发的Objective-C开发语言的时候,由于囊中羞涩买不起m ...
- iOS - Mac OS X 终端命令
Mac OS X 终端命令 1)显示当前目录的路径 pwd 2)列出文件 ls 参数 目录名 参数: -w 显示中文,-l 详细信息, -a 包括隐藏文件,每一行开头是 "d" 则 ...
- Mac OS X Tips
命令行查看Mac OS X版本 $ sw_vers ProductName: Mac OS X ProductVersion: BuildVersion: 14D131 Mac OS X截图 不要使用 ...
随机推荐
- ping脚本
#!/bin/bash for x in{100..200} ####区间为192.168.100.100-192.168.100.200 do x=$(($x-100)) if fping -c 1 ...
- linux的零碎使用
一.Linux(rehat.centos.ubuntu...)基础知识 上午: putty软件连接linux服务器: [root @ foundation2 ~ ] # 用户名 ...
- c语言中static的用法,包括全局变量和局部变量用static修饰
一.c程序存储空间布局 C程序一直由下列部分组成: 1)正文段--CPU执行的机器指令部分:一个程序只有一个副本:只读,防止程序由于意外事故而修改自身指令: 2)初始化数据段(数据段)--在程序中所有 ...
- 实践最简单的项目:WC
wc.exe是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序,模仿已有的wc.exe的功能,并加以扩充,给出某程序设计源语言文件的字符数.单词数和行数. 给实现一 ...
- [MySQL] 号称永久解决了复制延迟问题的并行复制,MySQL5.7
一.缘由: 某天看到主从复制延时的告警有点频繁,就想着是不是彻底可以解决一下. 一般主从复制,有三个线程参与,都是单线程:Binlog Dump(主) ----->IO Thread (从) - ...
- mysql-5.7.13-win32 安装
*:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !important; } /* ...
- c++中的宏 #define _CLASSDEF(name) class name
#include <iostream> using namespace std; #define _CLASSDEF(name) class name; \ typedef name * ...
- css3画三角形的原理
以前用过css3画过下拉菜单里文字后面的“下拉三角符号”,类似于下面这张图片文字后面三角符号的效果 下面是一个很简单的向上的三角形代码 #triangle-up { width: 0; height: ...
- 别人整理的DP大全(转)
动态规划 动态规划 容易: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ...
- C语音常用库和函数
#include <assert.h> //设定插入点 #include <ctype.h> //字符处理 #include <errno.h> //定义错误码 # ...