尽管之前在此站点及其同级站点上已询问过类似的主题,但我还没有设法收集到这个持久问题的答案。任何帮助深表感谢。
情况: 我有两台笔记本电脑;两者都包含大量音乐。有时我会将这些音乐文件移动到不同的位置,或者更改其中的元数据,或者将它们转换为不同的格式。我可以在任何一台机器上做任何这些事情。我很少一次完成所有这些工作——也就是说,我不太可能一次性转换文件的格式并将其移动到不同的位置。我希望能够同步这些更改,而不必筛选所有重命名或移动的内容。
我对 rsync 很熟悉,但我觉得它不够用,因为
- 虽然它可以计算校验和,但它没有任何方法来存储它们。因此,如果一个文件不同,它就无法确定它在哪一侧发生了变化。这也意味着它不能尝试将丢失的文件与具有相同校验和的新文件匹配(即移动)
- 如果文件大小和日期相同,则它,因此需要一个时期才能在大型存储库上进行同步。如果文件,我只想检查校验和
- 即使您打开校验和,它仍然不能智能地使用它:即,即使大小不同,它也会校验和文件。IIRC。
- 它不能使用文件元数据作为文件比较的手段。这是一个愿望清单项目,但它似乎是可行的。
我还研究了 rsnapshot,但在这种情况下,创建完整备份的要求是不切实际的。我不需要备份,我只需要记录每个散列的文件在何时何地。Unison 似乎可以在这些方面做一些模糊的事情,但我不愿意花几个小时来研究它的细节,却发现它很遗憾地缺乏。另外,在这里提问很有趣。
我想要的是一个可以按照以下方式执行操作的工具:
- 跟踪文件校验和或实际重命名,可能使用 inotify 大大减少资源消耗/延迟
- 存储一个包含此信息的数据库,以及其他相关性,如文件格式和元数据、实际的 inode、文件名历史记录等。
- 使用此信息与另一方的对应方提供更智能的同步。
例如:如果一个文件已经从 flac 转换为 ogg,但保持相同的基本文件名或相同的元数据,它应该能够发送新版本,而对方应该删除原始文件。可能它实际上应该将它隔离在某个地方,以防他们或你搞砸了,但这是一个细节。然后当交易完成时,状态会被记录下来,以便下次两者交互时,他们可以计算出它们的差异。
也许所有这些元数据的东西都是一个幻想。如果有什么东西可以以一种智能的方式使用校验和,我实际上会很高兴。这有点像 git 之类的智能,减去在索引/备份/等中复制数据的需要(以及分支、签出以及 RCS 所做的所有其他伟大的事情。基本上只是快进提交推送都是我想要的,也许可以选择回滚。)
那么有什么东西可以做到这一点吗?如果没有,有人可以建议一个开始制作它的好方法吗?
听起来您在谈论Windows Live Sync ...
我用过Unison,效果很好。它是免费的。
你看过微软的免费同步玩具吗?我将它用于我的媒体文件,听起来您正在寻找我在此工具中使用的类似功能。它不使用文件信息的数据库,但它似乎可以通过我的格式更改来管理。也许我对效率没有同样的要求!
我使用 Beyond compare 来同步我的数据 它效果很好并且有很多选择
一探究竟
滑板车软件
祝你好运