解决Finder里文件夹灰化问题
OS X的文件系统虽然古老了点,总体还算比较稳定,但昨天在连NAS使用的时候,突然发现了个诡异的问题:把NAS(群晖)的盘挂载上来后,从光盘往里传输文档时,如果是直接整个文件夹拷贝过去,那么这个文件夹在Finder里会灰掉,能查看信息,但无法访问。就如同下图中的“外语”这个文件夹。

OS X的文件系统虽然古老了点,总体还算比较稳定,但昨天在连NAS使用的时候,突然发现了个诡异的问题:把NAS(群晖)的盘挂载上来后,从光盘往里传输文档时,如果是直接整个文件夹拷贝过去,那么这个文件夹在Finder里会灰掉,能查看信息,但无法访问。就如同下图中的“外语”这个文件夹。

之前都是自己写了一个AppleScript,来做MACBook和PC之间的文件夹网络同步。要求的效果其实非常简单,就是将办公PC的文档备份到笔记本上一个加密的DMG里。AppleScript的流程也非常简单,无非就是切换网络、通过smb挂载PC的共享目录、判断并加载dmg,最后通过rsync来抓取PC上的内容。当然,我希望是无线搞定,不用通过U盘等媒介,并且得增量实现,否则每次几个G的文档能把人折磨死。
但不幸的是,上周突然发现DMG的文件比PC文件夹内容要少。经过仔细的检查,发现问题出在Samba上,某些子目录通过smb协议共享后会丢失,而更奇怪的是,这些文件夹在加载后,通过命令行是能看到的,只是属性不对:
ernMacBook:广东方案 ern$ ls -la
total 69584
drwx——@ 1 ern staff 16384 4 2 18:52 .
drwx—— 1 ern staff 16384 4 2 18:56 ..
似乎就是这个“.”目录的特殊属性限制了它的可见性。搜索各大网站看到,可能和目录的名字有关系(samba协议本身有要求),也可能和samba本身的bug有关系,反正就是无法解决。
假期研究了一下,发现还是要通过Rsync协议来处理。在Windows PC上安装Rsync服务端,MACBook作为客户端同步过来。除了对顶层目录要求是英文以外,其他没有任何限制,今天测试通过。
下面来介绍下实现过程:
1. MAC OS X自带了Rsync客户端,如果不是版本控的话,就可以直接用了,从测试来看,能够正常使用。如果你喜欢用最新版,那得麻烦下载源代码然后编译安装了。下载地址:http://rsync.samba.org/,目前最新版本是3月份的3.0.8版。