在 Windows 7 或 Ubuntu 12.04 上合并两个文件夹(来自我的文件的备份)

在 Windows 7 或 Ubuntu 12.04 上合并两个文件夹(来自我的文件的备份)

我每年都会将硬盘上的所有文件备份。

问题是 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 还使用校验和式方法来确定文件是否被修改,或检测重复文件。

相关内容