我每年都会将硬盘上的所有文件备份。
问题是 2007 版的备份包含 2008 版中不存在的文件。我需要这两个版本的文件,但它们不同。因此我无法用新版本覆盖旧版本文件。
我需要一个可以合并两个文件夹结构的程序。当源文件和目标文件的内容相同(校验和等)时,不要复制它。当内容不同时,使用 Filename(1) 进行复制。
有人可以给我提示吗?
谢谢你!
答案1
(1)对于 Linux,您可以使用同步。如果尚未安装,您应该通过执行以下操作下载并安装 rsync:
sudo apt-get install rsync
或者
sudo aptitude install rsync
从命令行。
假设你在同一个子目录中有目录 2007 和 2008,你可以在该特定目录中使用 rsync 这样的命令
rsync -rtpogv -clis -b --suffix=new 2007/ 2008/
这会将 2008 目录中不属于 2007 或 2007 目录中有旧版本的文件重命名为新建文件
不过,在执行此操作之前,你可以使用带有 -n 选项的 rsync,如下所示
rsync -rtpogv -clis -b --suffix=new -n 2007/ 2008/ &> rsync.log
并检查日志文件以查看一切是否按照您希望的方式进行。
(2)如果你使用的是 Windows,有一个名为巨嘴鸟对我来说,这看起来很有希望。但我还没有尝试过。http://portableapps.com/de/apps/utilities/toucan
答案2
如果您想要一个 GUI 工具,您可以尝试使用 WinMerge:http://winmerge.org/
答案3
我强烈推荐齐奏文件同步器, 有几个原因:
- 跨平台、开源
- 您可以通过本地文件系统(例如文件夹到文件夹)进行同步,通过 TCP(即从计算机到计算机)进行同步,或者通过 SSH
- 您可以在不同的平台之间进行同步(我使用它在我的台式机和笔记本电脑之间同步我的文件)
设置同步配置文件后,Unison 会检测哪个文件夹中的哪些文件被更改,然后为您提供一个交互式界面来确定要将哪些文件传输到哪里。默认情况下,最近修改的文件将覆盖较旧的文件。Unison 还使用校验和式方法来确定文件是否被修改,或检测重复文件。