2

我正在考虑开发一个客户目录/文件夹合并工具,作为学习函数式编程的一部分,以及解决一个非常个人的问题。

我通常在三台不同的计算机上工作,我倾向于在本地积累大量文件(文本、视频、音频),然后煞费苦心地将它们合并以进行备份。我很确定我有欺骗和不需要的文件浪费空间。我正在迁移到云备份解决方案作为辅助备份源,我希望通过消除冗余文件来尽可能多地节省空间。

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

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

哪个函数式编程环境带有一组用于生成这些哈希的现成库?我倾向于OCaml ...

4

1 回答 1

8

查看Unison 文件同步器

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

此外,它是用 OCaml 编写的。

于 2011-04-10T05:26:49.330 回答