rsync에서 스캔된 모든 폴더가 아닌 복사 중인 파일만 표시하도록 하려면 어떻게 해야 합니까?

rsync에서 스캔된 모든 폴더가 아닌 복사 중인 파일만 표시하도록 하려면 어떻게 해야 합니까?

내 주간 백업 스크립트는 다음과 같은 여러 bash 문으로 구성됩니다.

rsync -va /source_path/ /destination_path/

이제 이것은 훌륭하게 작동하지만 -v(verbose) 옵션은 내가 원하는 방식으로 정확히 작동하지 않습니다. 내가 원하는 것은 스캔하는 모든 폴더가 아니라 복사 중인 변경된 파일만 표시해야 한다는 것입니다.

예를 들어 document1document2폴더는 변경되지 않았지만 의 파일은 변경된 경우 document3표시는 다음과 같습니다.

document1/
document2/
document3/
document3/foo.txt

해당 옵션을 완전히 생략 하면 -v완전히 조용해지고 아무것도 표시되지 않습니다. 출력을 표시하고 싶지만 rsyncdocument1, document2 등과 같이 스캔된 수십 개의 폴더 가 아니라 복사되는 파일인 마지막 줄(foo.txt)에만 관심이 있습니다.

이를 수행할 수 있는 방법이 있습니까?

답변1

귀하의 설명은 이미 rsync작동 방식을 보여줍니다. -v로 표시되는 유일한 파일은 전송 중이거나 변경되는 파일입니다. 따라서 실행될 때마다 디렉토리에 약간의 차이가 나타납니다.

이에 대한 일반적인 이유는 원본과 대상이 서로 다른 파일 시스템에 있고 소유권이나 권한을 정확하게 복사할 수 없으며 각 호출에서 복사를 시도하기 때문입니다.

이를 확인하려면 (또는 )을 rsync사용하여 실행하세요 . 그러면 파일이 작업해야 하는 작업을 결정하는 내용을 보여주는 코드가 표시됩니다 . 소유권 또는 기타 정보인 경우(이 정보가 필요하지 않다고 판단한 경우) 또는 유사한 정보와의 동기화를 끌 수 있습니다 .-i--itemize-changesrsync--no-owner

관련 정보