比较两个不同目录中的现有文件,如果不存在则复制,否则覆盖它

比较两个不同目录中的现有文件,如果不存在则复制,否则覆盖它

我正在尝试构建一个脚本来比较不同 2 个目录中的文件,然后将它们从 dir1 复制到 dir2(如果 dir2 中不存在),或者如果它已经存在则覆盖它。

我知道我可以使用,diff dir1 dir2但是如何将结果复制到 dir2。因为diff命令给了我类似的结果only in dir1: file1.txt,据我所知,这本身不是一个文件(对吗?)

对于覆盖部分,我决定使用[ -ot ]命令,但同样,根据我的理解, [ -ot ]只能与文件进行比较,但不能与目录进行比较?

答案1

rsync在本地工作并对文件时间戳和文件大小进行测试。

rsync --archive /path/to/source/ /path/to/destination/

您也可以rsync在单个文件上使用。

答案2

为什么不cp

\cp -f /path/to/dir1/* /path/to/dir2/

相关内容