BASH脚本比较两个目录&将内容复制到第三个目录?

时间:2010-01-18 03:40:11

标签: bash unix

基本上我正在尝试将dir1和dir2(不包括子目录)的内容复制到dir3中。需要注意的是,如果dir1和dir2中都存在文件,我需要复制较新的文件。让我们说dir2中存在较新的文件。

我有:

find dir1 -type f -exec cp {} dir3 \;
find dir2 -type f -exec cp -u {} dir3 \;

这样做会导致这个问题:由于dir1中的文件是在dir2之前复制的,所以来自dir1的文件(现在在dir3中)都被认为是更新的,并且不会被覆盖。

我想你必须在dir1中处理一个文件,检查它是否存在于dir2中,然后检查哪个更新。但是我不知道怎么做,除此之外你可以使用“-nt”。我想我只是走错了方向。

1 个答案:

答案 0 :(得分:3)

cp -vfudp dir1/* dir3/
cp -vfudp dir2/* dir3/