用 Python 写了一个脚本,可以将需要同步的文件以符号符号链接的形式添加到 Dropbox 目录下
需要自己配置的部分如下
dropbox_dir="/home/yourname/Dropbox"
rules = [
("/home/yourname/workspace1", all_entry, all_entry),
("/home/yourname/workspace2", n(is_hidden), all_entry),
("/home/yourname/workspace3", n(vc_dir), has_exts(".txt", ".py")),
("/home/yourname/workspace4", n(vc_dir), a(has_exts(".log"), n(bigger_than("500M"))))
]
格式非常简单,每个工作目录可单独设置 rule,rule 由三部分组成(位置,目录过滤条件,文件过滤条件),这些过滤条件可以用 a(and), o(or), n(not) 三个逻辑运算符连接起来,构成复合逻辑。比如可以设置只同步所有非 .git 目录下以 .log 结尾且大小不超过 10M的文件。
性能不是问题,我试着同步了一下 Linux kernnel 中的全部的 C 源文件,只用了2秒多钟。
代码很 Quick and dirty,没有对异常做进一步处理,也没有考虑特殊情况。
完整代码见
http://snipt.org/ypkg9