![rsync를 사용하여 로컬 파일, 원격 파일 및 하나에는 있지만 다른 파일에는 없는 파일을 구별합니다.](https://linux55.com/image/169816/rsync%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EB%A1%9C%EC%BB%AC%20%ED%8C%8C%EC%9D%BC%2C%20%EC%9B%90%EA%B2%A9%20%ED%8C%8C%EC%9D%BC%20%EB%B0%8F%20%ED%95%98%EB%82%98%EC%97%90%EB%8A%94%20%EC%9E%88%EC%A7%80%EB%A7%8C%20%EB%8B%A4%EB%A5%B8%20%ED%8C%8C%EC%9D%BC%EC%97%90%EB%8A%94%20%EC%97%86%EB%8A%94%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EA%B5%AC%EB%B3%84%ED%95%A9%EB%8B%88%EB%8B%A4..png)
다음 명령을 사용하여 로컬 컴퓨터와 원격 컴퓨터의 디렉터리를 비교합니다.
rsync -K --delete -n -avrc $cwd/* simon@${othIP}:$cwd > /tmp/output
매크로에는 분명한 값이 있습니다.
/tmp/output
그런 다음 동기화 후 원격으로 삭제될 파일을 찾기 위해 구문 분석할 수 있습니다 .
하지만 파일을 구별해야 해요
- exist on the *local* but do not exist on the *remote*
- exist on both but are different.
(@BowlOfRed가 지적했듯이 위의 명령은하다원격에는 있지만 로컬에는 없는 파일을 식별할 수 있습니다. )
누구든지 이 작업을 수행하는 방법을 추천할 수 있습니까? 어떤 조언이라도 진심으로 감사드립니다
답변1
원격으로 존재하지만 로컬에는 존재하지 않는 파일은 삭제되며 자세한 출력에 "삭제됨"으로 표시됩니다.파일 이름".
두 가지 모두에 대해 존재하지만 서로 다른 파일이 업데이트됩니다. 파일 이름만 표시합니다(앞에 "삭제" 없음).
"새" 파일과 "업데이트된" 파일을 구별해야 하는 경우 -i 플래그를 추가하세요. 새 파일에는 모든 속성이 "+"로 표시되고, 업데이트된 파일에는 특정 속성이 표시됩니다.
$ echo update > a/update ; echo new > a/new
$ rm a/delete_me_later
$ rsync --delete -ai a/ b/
*deleting delete_me_later
.d..t....... ./
>f++++++++++ new
>f.st....... update