A 폴더에서 B 폴더로 파일을 동기화하거나 복사하고 싶습니다. 현재 다음 명령을 사용하고 있습니다
rsync -aq /tmp/FolderA/* /tmp/FolderB
그런데 FolderB에서 수정한 파일의 항목이 사라지는 것을 확인했습니다. 다음 명령이 도움이 될 것이라고 생각했지만 작동하지 않는 것 같습니다.
rsync -aqu /tmp/FolderA/* /tmp/FolderB
마지막으로, FolderB 아래의 파일에 입력되었을 수 있는 항목을 삭제하지 않고 FolderA의 파일을 FolderB로 업데이트해 보았습니다.
동시에 FolderA의 파일이 변경되면 다른 정보를 잃지 않고 추가하는 대신 FolderB의 파일을 업데이트해야 합니다. rsync 명령이 이에 도움이 될 것이라고 생각했습니까?
-a
엉망 이었나요 ? -r
또는 을 사용해야 합니까 --inplace
?
미리 감사드립니다.
답변1
함께 제공되는 모든 옵션을 정말로 사용하려면 -a 옵션을 사용해야 합니다. 처음에는 더 쉬워 보이지만 문제가 발생할 수 있습니다. --archive, -a archive mode; equals -rlptgoD (no -H,-A,-X)
선택지가 많네요 하하.
당신 은 그것 으로 도망칠 수 있을 수도 있습니다 rsync -ruP /tmp/folderA/ /tmp/folderB/
.
-P
이는 진행을 위한 것이며 더 긴 전송에 적합할 수 있습니다. -r
재귀적이며 디렉터리에서 작동합니다. -u
파일에 추가하는 것이 아니라 업데이트하는 데 사용됩니다.
또한 후행 슬래시 없이 /tmp/folderA를 실행하면 전체 폴더A가 대상 위치로 이동하는 반면, /tmp/folderA/는 폴더A 내의 내용을 대상 위치로 이동합니다. 하지만 디렉토리에 대한 재귀 옵션을 잊지 마세요!
답변2
rsync
내용에 관계없이 파일을 작업합니다. FolderA에서 FolderB로 복사하면 FolderA에 일치하는 파일 복사본이 생겨 이를 FolderB에 넣습니다. 프로세스의 다양한 측면을 제어하는 다양한 플래그가 있지만 기본 작업은 동일하게 유지됩니다. 즉, 원본에서 대상으로 파일을 복사합니다.
FolderA보다 최신인 FolderB의 파일을 건너뛰도록 예약할 수 있습니다.
특정 패턴과 일치하는 파일을 건너뛰도록 정렬할 수 있습니다.
rsync
그러나 파일의 내용을 해석 할 수 없으며 특정 사용자 정의 조건과 일치하는 행이나 레코드만 복사할 수 있습니다.
명령은 모든 파일, 디렉터리 및 장치 노드를 FolderA에서 FolderB로 복사하고, FolderA와 일치하지 않는 경우 FolderB의 파일을 덮어쓰거나 업데이트합니다.
rsync -a /tmp/FolderA/ /tmp/FolderB