rsync --remove-source-files는 소스 파일을 하나씩 또는 rsync가 완료된 후 삭제합니까?


23

폴더의 내용을 다른 컴퓨터로 복사하는 응용 프로그램에 rsync 명령이 있습니다. --remove-source-filesrsync가 완료된 후에 대상 컴퓨터에 파일을 저장하는 데 관심이 있기 때문에 옵션 이 있습니다.

그러나 파일을 전송하는 동안 rsync가 충돌하거나 중단되면 어떻게 작동하는지 궁금합니다.

내가 동기화에 두 개의 파일을 고려 a하고 b. 사본을 rsync는 것 a, 그 다음 소스에서 삭제하고, 복사를 시작 b, 또는 모두에 대해 대기 a하고 b그들 모두를 삭제하기 전에 대상 컴퓨터에 복사 할 수 있나요? 일부 플래그가있는 외부 파일을 삭제할 때이 동작을 구성 할 수 있지만 소스 파일 제거에 대해서는 아무것도 찾지 못했습니다.


stackoverflow.com/questions/7380234/ 와 비슷 하지만 Kyle이 옳을 수도 있지만 rsync는 모든 파일이 완료되기를 기다리는 것처럼 보이지만 때로는 완료하기 전에 파일을 삭제합니다. 그래도 조금 혼란 스럽습니다.
Chris2048

답변:


16

rsync 코드를 확인하면 소스 파일이 전송 될 때 즉시 제거되지는 않지만 소스 파일이 전송 될 때 제거됩니다. rsync는 작업을 멀티플렉싱하므로 파일이 성공적으로 수신되어 삭제 될 수 있다는 메시지가 다른 데이터 뒤에 버퍼링 될 수 있습니다.


2
아래 답변에 따라 두 개의 파일로 시도했으며 전체 작업이 성공한 경우에만 파일이 삭제되었습니다. 그것은 당신이 찾은 "transfer OK"신호가 완전한 작업이 성공했을 때만 스며 들었다고 생각합니다.
Daniel Andersson

5
몇 개 이상의 파일로 시도하면 전체 전송이 완료되기 전에 소스 파일이 사라지는 것을 볼 수 있습니다.
Kyle Jones

디렉토리와 재귀 옵션을 지정할 때의 파일은 즉시 삭제되지 않는 것 같습니다.
Andre Holzner

4

나는 그것을 시도했다. (그리고 당신도 쉽게 할 수있다.) 모든 파일이 성공적으로 전송 되면 제거됩니다 . 전송이 중단되거나 다른 오류가 발생하면 일부 파일이 전송 되었더라도 소스 파일이 제거되지 않습니다.

편집 : Kyle Jones의 답변에 따라 많은 파일이 포함될 때 사례가 다를 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.