【发布时间】:2011-04-10 04:39:07
【问题描述】:
我正在考虑开发一个自定义目录/文件夹合并工具,作为学习函数式编程的一部分,以及解决一个非常个人化的问题。
我通常在三台不同的计算机上工作,我倾向于在本地积累大量文件(文本、视频、音频),然后煞费苦心地将它们合并以进行备份。我很确定我有欺骗和不需要的文件浪费空间。我正在迁移到云备份解决方案作为辅助备份源,我希望通过消除冗余文件来尽可能多地节省空间。
我有一个复杂的深度嵌套目录结构,我想要一个自动化工具来自动遍历文件夹树并执行合并。另一个问题是我混合使用 Linux 和 Windows,而且我的许多文件的名称中都有空格...
我最初的想法是,我需要为每个文件生成哈希,并使用哈希而不是文件名进行比较(文件夹名称中的空格以及文件内容在源和目标之间可能不同)。 RIPEMD-160 在性能和防撞之间取得了很好的平衡吗?还是 SHA-1 就足够了? SHA-256/512 是否矫枉过正?
哪个函数式编程环境带有一组用于生成这些哈希的现成库?我倾向于 OCaml...
【问题讨论】:
-
你为什么要重新发明轮子。 git 和 github 呢。
-
Git 不能很好地处理大型二进制文件。但是你可以试试 git 和 git-annex 或者一些类似的 git 附加软件。不确定这是否适合您的用例。