Rsync는 파일을 덮어쓰지 않습니다.

Rsync는 파일을 덮어쓰지 않습니다.
  1. 나는 2 개의 디렉토리를 가지고 있습니다 - etc그리고oldroot/etc
  2. etc모든 파일이 정확히 일치하기를 원합니다 .oldroot/etc
  3. etc만약 그 안에 없는 파일이 있다면 oldroot/etc그대로 유지하고 싶습니다.

제가 생각할 수 있는 모든 rsync 플래그를 시도했지만 원하는 결과를 얻을 수 없습니다.

# # A few of the simpler commands I have tried
# rsync -Ia oldroot/etc etc
# rsync -Iac oldroot/etc etc
# rsync -ac oldroot/etc etc

오류 없이 완료됩니다. () 디렉터리를 비교해 보면 diff -r oldroot/etc etc두 디렉터리 모두에 내용이 다른 동일한 파일이 여러 개 있습니다. 저는 지난 이틀 동안 직장에 있었는데 말할 필요도 없이 엄청나게 좌절했습니다.

답변1

rsync --… oldroot/etc etc소스 디렉터리를 etc대상 디렉터리의 하위 디렉터리에 복사하므로 파일은 oldroot/etc/foo최종적으로 에 복사됩니다 etc/etc/foo. 디렉터리를 동일한 이름의 디렉터리에 복사하려면 대상 디렉터리의 상위 디렉터리를 지정합니다.

rsync -a oldroot/etc .

한 디렉터리를 다른 디렉터리로 복사하려면 소스 디렉터리 뒤에 슬래시를 추가하여 소스 디렉터리의 내용을 대상 디렉터리로 복사하도록 rsync에 지시하세요. (대상의 후미 슬래시는 아무런 차이가 없습니다.)

rsync -a oldroot/etc/ etc

관련 정보