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

时间:2013-01-13 18:38:29

标签: macos file bash batch-processing overwrite

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

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

我正在运行Mac版本10.7.4。 我打开安装新应用程序和/或使用terminal / bash命令。

1 个答案:

答案 0 :(得分:13)

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

请注意,在OS X中,mvcp不支持-u选项。但是,rsync具有-u选项,并且在OS X上受支持。例如:

rsync -aru SOURCE/ DEST

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

  

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