rsync가 제외된 파일을 제거하고 있습니다.

rsync가 제외된 파일을 제거하고 있습니다.

rsync에서 파일을 제외하는 데 문제가 있습니다. 문제의 파일은 해당 파일이 있는 컴퓨터에 특정한 구성 파일이므로 개발 컴퓨터에 한 버전이 있고 프로덕션 컴퓨터에 다른 버전이 있습니다.

명령줄에서 제외 항목을 사용하여 작동하도록 할 수 있지만 디렉터리별 규칙 파일과 함께 작동하도록 하는 것을 선호합니다.

따라서 다음과 같이 요약된 예를 들어보겠습니다.

/mydir/
/mydir/foo/
/mydir/foo/bar.txt                <-- this is the config. file
/mydir/foo/baz.txt
/mydir/foo/.rsync-filter

.rsync-filter에는 다음이 포함됩니다.

- bar.txt

mydir을 상위 작업 디렉터리로 사용하여 rsync를 시도합니다.

$ rsync -rptFvv --delete mydir/ remote.example.com:/home/pryan/temp/rsynctest/
opening connection using: ssh remote.example.com rsync --server -vvtpre.iLs --delete . /home/pryan/temp/rsynctest/  (8 args)
sending incremental file list
[sender] hiding file foo/.rsync-filter because of pattern .rsync-filter [per-dir .rsync-filter]
[sender] hiding file foo/bar.txt because of pattern bar.txt [per-dir .rsync-filter]
delta-transmission enabled
foo/
deleting foo/bar.txt
foo/baz.txt is uptodate
total: matches=0  hash_hits=0  false_alarms=0 data=0

sent 119 bytes  received 107 bytes  90.40 bytes/sec
total size is 4  speedup is 0.02

분명히 그렇죠.rsync-filter 규칙을 읽으면 "foo/bar.txt 숨기기"라고 되어 있지만 -는 제외, 즉 숨기기 및 보호를 의미한다는 인상을 받았습니다.

나는 이것이 (내 입장에서는) 어리석은 일이 될 것이라고 확신합니다. 그러니 긴장을 푸십시오. 나는 준비가 되어 있고 스스로를 걷어차기를 기다리고 있습니다! :디

업데이트: 로컬에서 rsync 3.1.0(Ubuntu 14.04)을 실행하고 원격으로 rsync 3.0.9(Debian 7)를 실행하고 있다는 사실을 잊어버렸습니다.

답변1

제외하는 것이 아니라 보호하려면 .rsync 필터에서 P를 사용해야 합니다. 필터에서 이를 제외하면 소스에서 검색되지 않으며 대상이 소스에서 전송된 파일 목록에서 해당 항목을 볼 수 없기 때문에 --delete가 시작됩니다.

관련 정보