2011-04-10 52 views
2

我正在考虑开发一个custome目录/文件夹合并工具,作为学习函数式编程的一部分,以及创建一个非常个人的痒。一个自定义目录/文件夹合并工具

我通常在三台不同的计算机上工作,我倾向于在本地累积大量文件(文本,视频,音频),然后为了备份目的而苦心合并它们。我非常肯定我有一些愚蠢的东西和不需要的文件在浪费空间。我正在转向云备份解决方案作为辅助备份源,我希望通过消除冗余文件来节省尽可能多的空间。

我有一个复杂的深层嵌套的目录结构,我想要一个自动化的工具,自动走下文件夹树并执行合并。另一个问题是,我使用Linux和Windows的混合,我的许多文件名称中有空格...

我最初的想法是我需要为每个文件生成哈希,并使用哈希而不是文件名进行比较(文件夹名称中的空格以及源文件和目标文件的内容可能不同)。 RIPEMD-160在性能和避免碰撞之间取得了良好的平衡吗?或者是SHA-1足够了?是SHA-256/512矫枉过正?

哪些函数式编程env带有一套用于生成这些散列的现成库?我倾向于OCaml ...

+0

你为什么要重新发明轮子。那么git和github呢? – 2011-04-10 04:42:38

+0

对于大型二进制文件,Git不能很好地工作。但是你可以尝试使用git-annex或者类似的git附加软件。不确定这是否适合您的使用情况。 – 2011-04-10 06:30:31

+0

这是一个[无耻的插件](http://alaska-kamtchatka.blogspot.com/2011/02/finding-duplicate-files-on-batteries.html)。 – 2011-04-10 19:09:34

回答

8

检查出Unison file synchronizer

我自己并没有使用它,但我听到了不少积极的评论。它是基于一些理论基础的成熟软件。

另外,它是用OCaml写的。

相关问题