rsync : 최상위 디렉토리에서만 Dotfile을 제외시키는 방법은 무엇입니까?


8

와 함께 Bash에서 백업을 수행 할 때 rsync최상위 디렉토리의 모든 도트 파일과 숨겨진 디렉토리를 제외하려고하지만 다른 대상 디렉토리의 디렉토리는 제외 하지 않습니다 . 예를 들면 다음과 같습니다.

/copyme.c  
/.dontcopythisfile  
/.dontcopythisdirectory/or_its_contents  
/directory/.butcopymetoo

rsync -a --include=".includeme" --exclude=".*" . DEST하위 디렉토리에서 원하는 도트 파일을 복사하지 못하지만 같은 변형 --exclude="./.*"도 실패합니다.

제안? 이보다 간단한 필터 규칙이 필요합니까 --exclude?

regex  bash  rsync 

답변:


12

앵커를 사용해야하며 rsync에서 앵커 문자는 '/'입니다.

따라서 문자열에는 다음이 있어야합니다.

rsync -a --include="/.includeme" --exclude="/.*" ./ DEST

0

일반적으로 패턴이 포함 된 .rsync-filter 파일을 만드는 것이 좋습니다.

- /.*

그런 식으로,

rsync -hxDPavilyzHFF --stats --delete ./ remote:/backup/

이상적인 백업 명령입니다. 필터링은 -FF 플래그에 의해 수행됩니다.

이 방법을 사용하면 다양한 서브 디렉토리에 다양한 .rsync-filter 파일을 각각의 서브 트리에 적용 할 수 있습니다. 이 방법을 사용하여 하위 디렉토리의 제외도 무시할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.