5

这似乎是非常基本的命令。但是,即使经过一个小时的搜索解决方案,我仍然找不到有效的方法。

所以我有两个大文件夹(有很多文件和很多子文件夹,超级备份)。我想将这两个文件夹合并到一个仅包含较新文件的文件夹中。所以我正在寻找一种方法来覆盖文件如果只有源文件比目标文件新,或者当目标文件不存在时。

我正在运行 Mac 版本 10.7.4。我愿意安装新的应用程序和/或使用终端/bash 命令。

4

1 回答 1

14

在 Gnu 系统中,仅当 SOURCE 文件比 DEST 文件新或目标文件丢失时,才使用mv -u SOURCE DEST或移动或复制。cp -u SOURCE DEST

请注意,在 OS X 中,mvcp不支持该-u选项。但是, rsync有一个-u选项,它在 OS X 上受支持。例如:

rsync -aru SOURCE/ DEST

在将临时目录应用到大而重要的目录之前,在临时目录中运行一些测试,因为(IMO)rsync 对于目录名称是否以/. Linux手册页的一部分说:

源上的尾部斜杠会更改此行为,以避免在目标上创建额外的目录级别。您可以将源上的尾随 / 视为“复制此目录的内容”而不是“按名称复制目录”,...

于 2013-01-13T18:53:46.190 回答