두 디렉터리의 모든 파일을 비교하고 다른 파일을 다른 디렉터리에 복사하는 방법은 무엇입니까? 예를 들어,디렉토리 1그리고디렉토리 2:
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
새 디렉터리를 어떻게 만들 수 있나요?목차 3다음과 다른 파일이 포함되어 있습니다.디렉토리 2, 공개 파일디렉토리 1그리고디렉토리 2그리고 둘 다의 모든 일반적이지 않은 파일디렉토리 1그리고디렉토리 2?목차 3다음을 포함해야 합니다:
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
답변1
당신에게 필요한 것은
cp -n dir2/* dir1/* dir3/
답변2
두 개의 기본 디렉터리에 있는 모든 파일이 포함되어야 하며 파일이 두 디렉터리에 모두 나타나면 둘 중 하나를 가져와야 한다는 점을 올바르게 이해하고 있습니까 dir3
? dir2
그럼 간단한
cp dir1/* dir3/
cp dir2/* dir3/
이 문제를 해결해야 합니다. 두 소스 디렉터리의 서로 다른 파일이 복사됩니다 dir2
. 동일한 파일을 두 번 복사하지 않으려면 대신 복사할 수도 rsync
있습니다 cp
.
답변3
cp -pu dir2/* dir1/* dir3/
남성의 경우:
-p same as --preserve=mode,ownership,timestamps
-u copy only when the SOURCE file is newer than the destination
file or when the destination file is missing
노트:
- 항상 업데이트된 목차를 먼저 배치하세요. (위의 예에서:
cp -pu dir1/* dir2/* dir3/
업데이트된 파일은 복사되지 않습니다) dir3
존재해야 합니다.