다음 명령은 $MIRROR_SOURCE를 기준으로 $MIRROR_SOURCES에서 $MIRROR_DEST로 파일을 재귀적으로 복사합니다. 하지만 삭제 플래그가 작동하지 않습니다.
rsync -var --files-from=$MIRROR_SOURCES --delete $MIRROR_SOURCE $MIRROR_DEST
답변1
읽다--삭제주의 깊게 man rsync
강조하겠습니다.
이는 rsync에게 수신 측(송신 측에 없는 파일)에서 관련 없는 파일을 삭제하도록 지시하지만,동기화되는 디렉터리에 대해서만. 디렉토리 내용(예: "dir/*")에 와일드카드를 사용하지 않고 전체 디렉토리(예: "dir" 또는 "dir/")를 보내도록 rsync에 요청해야 합니다. 와일드카드는 쉘에 의해 확장되고 rsync는 그에 따라 파일의 상위 디렉터리가 아닌 개별 파일을 전송하도록 요청합니다. --delete-excluded 옵션을 사용하지 않으면 전송에서 제외된 파일은 삭제에서도 제외됩니다.또는 규칙을 전송 측에서만 일치하는 것으로 표시합니다(FILTER RULES 섹션의 포함/제외 수정자 참조).
요점은 동기화되도록 지정한 항목에 대해서만 이 작업을 수행하고 와일드카드를 지정했는지 여부에 따라 다르다는 것입니다. 이를 원하지 않지만 대신 모든 곳에서 발생하도록 하려면 다음을 지정할 수 있습니다. --delete-excluded
플래그도 그렇고.