내 rsync 필터가 포함된 폴더 하나만 복사하고 다른 폴더는 복사하지 않는 이유는 무엇입니까?

내 rsync 필터가 포함된 폴더 하나만 복사하고 다른 폴더는 복사하지 않는 이유는 무엇입니까?

내 홈 디렉터리와 이름이 특정 패턴과 일치하는 두 개의 하위 디렉터리에 있는 모든 파일을 동기화하고 싶습니다. 그러나 내 rsync 명령과 필터는 하위 디렉터리 중 하나만 통과합니다.

rsync -aHm --delete --include-from=/home/ftamborello/.rsync-include --exclude-from=/home/ftamborello/.rsync-exclude -e "ssh -A -t frank@frynseytv" /home/ftamborello/ :/Users/frank/Backup/

.rsync - 포함:

*.pdf
*.lisp
*.scr
*.r
*.txt
*.csv
*.py
*.c
*.h
*.[0-9][0-9]
.rsync*
.autobackup.sh
Documents/
fpt-logs/

.rsync-제외:

*

Rsync 명령 결과(-nv 사용):

building file list ... done
deleting .#fpt-log-2016.05.10
./
.ccl-init.lisp
.emacs.2016.06.17
.profile.2016.03.09
.profile.2016.08.05
.rsync-exclude
.rsync-include
fabfile.py
output.pdf
python-test.py
temp.txt
Documents/
fpt-logs/
fpt-logs/fpt-log-2015.12.16
fpt-logs/fpt-log-2015.12.17
...
fpt-logs/fpt-log-2016.08.19
fpt-logs/fpt-log-2016.08.22

sent 4,827 bytes  received 1,130 bytes  2,382.80 bytes/sec
total size is 3,213,954  speedup is 539.53 (DRY RUN)

Documents/auto-backup-test.txt 및 cl-template.lisp와 같이 포함 패턴과 일치해야 하는 문서 계층 구조에 꽤 많은 파일이 있는데 rsync가 해당 파일을 복사할 수 없는 것 같습니다.

나는 내 코드를 개발하기 위해 이 unix.stackexchange 게시물을 사용했습니다.

Rsync 필터: 하나의 패턴만 복사

내가 무엇을 놓치고 있나요?

답변1

나는 rsync매뉴얼 페이지를 다시 RTFM했고 이번에는 지식의 핵심 커널인 것 같은 것을 발견했습니다.

--include/ 명령줄 옵션 은 --exclude전체 범위의 규칙 구문 분석을 허용하지 않습니다.

이는 제외/포함 파일을 가리키면 동일한 결과가 생성된다는 의미라고 가정합니다. 그래서 .rsync-filter파일을 만들고 그 -F옵션을 사용했습니다. 이제 rsync는 전체 디렉터리 계층 구조를 탐색하여 .rsync-filter내 파일의 패턴을 예상대로 일치시킵니다.

따라서 해결책은 가장 단순한 경우를 제외한 모든 경우에 제외/포함 대신 필터링을 사용하는 것 같습니다.

관련 정보