MAC:如何合并文件夹,以便我们只在源文件比目标文件更新时覆盖?

Fle*_*eea 5 macos bash file overwrite batch-processing

这似乎是非常基本的命令.然而,即使经过一个小时的搜索解决方案,我仍然找不到有用的东西.

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

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

Jam*_*at7 13

在Gnu系统中,仅当SOURCE文件比DEST文件更新或缺少目标文件时,才使用mv -u SOURCE DESTcp -u SOURCE DEST移动或复制.

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

rsync -aru SOURCE/ DEST
Run Code Online (Sandbox Code Playgroud)

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

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