rsync를 사용할 때 이동된 폴더의 불필요한 삭제 및 재복사를 방지하는 방법은 무엇입니까?

rsync를 사용할 때 이동된 폴더의 불필요한 삭제 및 재복사를 방지하는 방법은 무엇입니까?

rsync는 이동된 폴더를 감지할 수 없으며 해당 폴더를 삭제하고 새 폴더 구조에 다시 복사한다는 내용을 읽었습니다.

마스터 복사본에 대한 유일한 변경 사항은 원본 파일을 포함할 최상위 폴더를 간단히 도입한 것뿐입니다. 즉, 다음과 같습니다.

folder1
folder2
folder3

~ 안으로

top\folder1
top\folder2
top\folder3

백업 복사본에서 동일한 작업을 수동으로 수행하고 두 상위 폴더의 수정 시간을 어떻게든 수정하여 rsync에 대한 후속 호출이 정상적으로 실행될 수 있는지 궁금합니다.

이것이 작동할까요? 그렇다면 어떻게? 그렇지 않다면 이 문제를 해결하기 위해 권장되는 방법은 무엇입니까? 아니면 처음에 다른 매개변수를 사용하여 rsync를 실행해야 합니까? (대신 rsync -a --delete /mnt/SRC /mnt/DEST내가 현재 사용하고 있는 것)

디렉토리는 꽤 크기 때문에 불필요한 재복사를 가능한 한 피하고 싶습니다.

답변1

예, 백업 복사본을 수동으로 이동한 다음 rsync를 실행할 수 있습니다. 수정 시간을 변경할 필요는 없습니다. rsync가 그렇게 하도록 놔두세요.

이와 같은 이름 바꾸기는 자동으로 감지하기 어렵기 때문에 수동으로 복제하는 것이 일반적인 해결 방법입니다.

답변2

이동하는 경우 파일 수정 시간도 수동으로 업데이트할 필요가 없습니다.

새 디렉토리 구조 미러링에 특별히 관심이 없고 파일만 원하는 경우 rsync --(options) /mnt/SRC/newdir/ /mnt/DEST를 사용할 수도 있습니다. SRC 측에 추가 슬래시를 기록하지 않으면 모든 것을 새로 복사하게 됩니다.

답변3

제안된 솔루션여기트릭을 수행했습니다 :

rsync -vrt --size-only /src/ /dest/

--size-only 옵션을 사용하면 rsync타임스탬프가 무시되고, -t(수정 시간 유지)를 사용하면 rsync대상 복사본에서 일치하지 않는 수정 시간이 수정됩니다.

관련 정보