rsync에서 "find .."를 사용할 때 rsync의 --delete 옵션이 작동하지 않습니다.

rsync에서 "find .."를 사용할 때 rsync의 --delete 옵션이 작동하지 않습니다.

나는 그것을 사용하고 있다

rsync -avh --progress --delete `find /path/to/files -type f -printf "%p\n" | sort -rn | head -n 5` /path/to/backup/

최신 5개 파일을 백업하세요. 이 --delete옵션은 찾기 출력의 5개 파일에 포함되지 않은 경우 대상 폴더의 파일을 삭제해야 합니다. 불행하게도 이 --delete옵션은 작동하지 않습니다. 어떻게 하면 작동하게 하거나 내가 하는 일을 다르게 할 수 있나요?

답변1

rsync수동상태:

--delete

이는 rsync수신 측에서 불필요한 파일(송신 측에 없는 파일)을 제거하라는 의미입니다.디렉토리에만 적용동기화 중입니다.

여러 개의 개별 파일을 전송 중이므로 --delete작동하지 않습니다.

답변2

아직 귀하의 질문에 대해 논평할 만큼 충분한 평판을 얻지 못한 것 같으므로 답변에서 그렇게 하겠습니다.

먼저, 사용하고 있는 파일명을 올려주시면 도움이 될 것 같습니다. 또한 하위 디렉토리 구조가 무엇인지 알고 싶습니다 /path/to/files. 내가 이것을 말하는 이유는 find당신이 실행하고 있는 것이 실제로 최신 파일을 인쇄하고 있는지 알고 싶기 때문입니다 . 여기서는 타임스탬프를 조작하지 않기 때문에 제가 묻는 것입니다. 따라서 이 시점에서 명확하게 하기 위해 찾기 결과를 붙여넣을 수도 있습니다.

-n그리고 꼭 필요한지 알고 싶습니다 sort. 주제에서 약간 벗어났지만 하나 만들 수 있습니다 sort | tail -5.

파일 내용(대상 파일 포함)에 대한 추가 출력을 보지 않고는 이 접근 방식이 rsync --delete작동하는지 잘 모르겠습니다. 이것이 당신에게 효과가 있었습니까, 아니면 지금 막 발견하고 있습니까?

또는 find의 -newer, -delete 및/또는 mtime 플래그를 볼 수 있습니다.

관련 정보