这似乎是一个非常基本的命令。然而,即使经过一个小时的搜索解决方案,我仍然找不到有效的方法。
所以我有两个大文件夹(有许多文件和许多子文件夹,超级备份)。我想把这两个文件夹合并成一个文件夹,只包含较新的文件。所以我正在寻找一种方法来覆盖文件,如果只有源文件比目标文件新,或者当目标文件不存在。
我正在运行Mac 10.7.4版本。我愿意安装新的应用程序和/或使用terminal/bash命令。
在Gnu系统中,只有当源文件比DEST文件更新或目标文件缺失时,才使用mv -u SOURCE DEST
或cp -u SOURCE DEST
来移动或复制。
注意,在OS X中,mv和cp不支持-u
选项。但是,rsync有一个-u
选项,并且在OS x上支持。例如:
rsync -aru SOURCE/ DEST
在将它应用于大型和重要的目录之前,在临时目录中运行一些测试,因为(IMO) rsync对于目录名是否以/
结尾是特殊的。Linux手册页的一部分说:
源上的尾斜杠会更改此行为,以避免在目标上创建额外的目录级别。你可以把源代码后面的/看作是"复制这个目录的内容",而不是"按名称复制目录",…