폴더의 모든 내용을 제외하고 일부 하위 폴더를 제외하고 싶 --exclude
거나 --include
명령 줄 옵션을 추가하지 않고 단일 규칙 파일로만 수행하고 싶습니다 . 이것이 가능한가? 유지 관리 및 문서화가 더 쉬우므로 단일 규칙 파일이 중요합니다.
다음 명령을 실행합니다
rsync -a -F --filter "merge backup-filter" /mnt/home/common /mnt/backup
파일로 backup-filter
:
# non-rooted rules take precedence
+ .git/*
+ .gitignore
- .*.sw?
# rooted rules
+ /common/backup*
- /common/opt/
+ /common/usr/
# FIXME
+ /common/root/startup/*
+ /common/root/.config/gopt/*
- /common/root/*
그리고 두 개의 .rsync-filter
파일
# cat ./usr/bin/.rsync-filter
# Assume command-line option --filter=':- .gitignore', which
# backs up all file/folders that aren't listed in ./.gitignore
# cat ./usr/.rsync-filter
+ usr/bin
- */
시작하는 규칙 블록 FIXME
은 깨진 조각입니다. 모든 내용을 제외하는 것을 의미 /common/root
하지만, 내용을하자 startup
및 .config/gopt
복사. 이 때문에 고장 startup
및 .config/gopt
복사되지 않습니다.
시간이 지남에 따라 다양한 수준에서 제외 경로를 더 추가하고 경로에 대해 여기에서 수행하는 것과 같은 일부 하위 경로를 추가 할 계획입니다 /common/root
. 따라서 규칙 파일이 상당히 커질 것입니다.
.rsync-filter
파일이 추가되었습니다.
-F
하지만.rsync-filter
파일 내부의 내용을 표시하지 않습니다 .