比较两个目录中的每个文件,如果与对应文件不同,则将其复制到另一个目录中

Seb*_*ebi 3 shell file-copy

如何比较两个目录中的所有文件并将不同的文件复制到另一个目录?例如,假设我们有dir1dir2

dir1:
     build.gradle
     gradle.properties
     somejar.jar
     javacode.java
     anotherjar.jar

dir2:
     build.gradle      <-- different from build.gradle in dir1
     gradle.properties
     somejar.jar
     javacode.java     <-- different from javacode.java in dir1
     yetanotherjar.jar
Run Code Online (Sandbox Code Playgroud)

我怎么可能会创建一个新的目录DIR3包含从不同的文件DIR2,在共同文件DIR1DIR2和所有常见的文件都DIR1DIR2dir3应包含:

dir3:
     build.gradle      <-- from dir2
     gradle.properties <-- these are common files both in dir1 and dir2
     somejar.jar       <--
     javacode.java     <-- from dir2
     anotherjar.jar    <-- from dir1
     yetanotherjar.jar <-- from dir2
Run Code Online (Sandbox Code Playgroud)

jim*_*mij 5

所有你需要的是

cp -n dir2/* dir1/* dir3/
Run Code Online (Sandbox Code Playgroud)