我有一个文件夹,每周都会备份到外部驱动器,大约 150GB。里面大约有 36,000 个音乐文件。我彻底改变了文件夹结构,几乎一半的文件都位于不同的路径中。我使用的同步程序 (Syncback) 在同步开始之前生成了一个同步摘要,告诉我它将从外部驱动器中删除所有“丢失”的文件,然后使用新的文件夹结构重新复制它们。由于 USB 连接速度较慢,这将花费大半个晚上的时间。
是否有适用于 Windows 或 Unix 的程序可以判断文件是否已被移动并简单地将目标文件移动到新位置?
答案1
是的,有一个名为 Unison 的开源程序可以完成您所描述的功能:http://www.cis.upenn.edu/~bcpierce/unison/。它会记住您正在同步的每个文件的哈希值。如果文件移动,Unison 可以判断它是同一个文件,因为它仍然具有相同的哈希值。如果它必须重新计算大量文件的哈希值,这可能会有点耗时,但可能比通过慢速连接传输所有文件耗时更少。我已经使用 Unison 多年了,它很棒。它可在 Windows 和 Unix 上运行。
答案2
我在用补习班 2并且它支持这一点。事实上,“重命名和移动检测”现在几乎是所有备份和文件同步程序的标准功能。我认为 SyncBack 以前也有这个选项,只是默认情况下是关闭的。
答案3
rsync 程序执行相同的功能,它是一个标准的 Linux 实用程序。它有很多选项,但大多数情况下您可能想要 -a(保留权限)和 -P(显示进度)。还有一个 -e ssh,用于通过 ssh 连接传输数据。