유닉스 : 두 디렉토리를 병합하는 방법


17

나는 다양한 내용으로 두 개의 폴더가, 말 foobar. 어떻게 병합 할 수 있습니다 barfoo있도록 :

  • 에없는 파일 은 변경 foo되지 않습니다 bar.
  • 의 파일 bar그에없는 foo지금에 있습니다 foo.
  • 에있는 파일 foobar의 파일로 대체되었습니다 bar.

답변:


25

요구 사항을 올바르게 읽으면에서 foo로 이동하는 파일이 없습니다 bar. barto 의 내용을 복사하여 foo필요에 따라 파일을 덮어 쓸 수있는 것처럼 보입니다 (기본 동작).

$ cp -R /path/to/bar/* /path/to/foo

그래, 내가 확실하지 않은 것은 재귀와 foo 안에 bar를 foo / bar로 두는 것으로 끝나지 않는 방법이었다. 그러나 이것은 내가 원하는 것 같습니다 :)
Svish

1
그렇습니다. 방금 cp -R /path/to/bar /path/to/foo디렉토리 bar안에 디렉토리를 만들 것 foo입니다. 미묘한 점.
coneslayer

1
참고 : 쉘 globbing 작동 방식으로 인해 숨겨진 파일 / 디렉토리 bar(예 : 점으로 시작하는 이름 – .) 는 생략됩니다 .
Kamil Maciorowski 님이

9

병합 : 나는 매우 비슷한 요구를했다 barfoo하지만에있는 파일 bar 에 덮어 쓰기 일치하는 파일 foo. 이 경우 :

$ cp -R -n /path/to/bar/* /path/to/foo/

1

이 시도 :

$ cp -r-u-v /path/to/foo/* /path/to/bar/

에서 man cp
-u, --update는 대상 파일이없는 경우 소스 파일이 대상 파일 또는보다 최신 인 경우에만 복사
-R, -r, --recursive 재귀 적으로 복사 디렉토리를


1
두 사람이 이미 cp 명령을 제안 했으므로 귀하의 답변은 불필요한 것 같습니다. 선택한 논거가 다른 제안보다 더 잘 수행되는 방법을 설명하기 위해 몇 분 정도 걸리면 답이 더 도움이됩니다.
music2myear

1
-u 플래그는 소스의 파일이 대상의 파일보다 최신 인 경우에만 업데이트됩니다. 참조 : man cp -> -u, --update : SOURCE 파일이 대상 파일보다 최신이거나 대상 파일이 누락 된 경우에만 복사
drew7721

사람들이 답변 자체에서 유용한 정보를 볼 수 있도록 해당 정보를 질문에 추가하십시오 (게시물 바로 아래의 편집 사용).
music2myear
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.