rsync 제외 폴더가 작동하지 않나요?

rsync 제외 폴더가 작동하지 않나요?

내 프로젝트의 yaml 파일을 구조를 유지하면서 dist 폴더로 복사하려고 합니다. 그러나 그것은 node_modules내가 원하지 않는 사본입니다. rsync 제외를 어떻게 사용하며 다음 명령이 작동하지 않는 이유는 무엇입니까?

rsync -R --exclude=node_modules ./**/**.yaml dist

참고 변형 등을 시도했습니다.

rsync -R --exclude= node_modules ./**/**.yaml dist
rsync -R --exclude 'node_modules' ./**/**.yaml dist

내 폴더 구조:

projectroot
|--config/file.yaml
|
|--node_modules/somedir/somefile.yaml
|
|--src/somefolder/somefile.yaml

위의 내용이 내 dist에 다음과 같이 표시되기를 원합니다.

dist
|--config/file.yaml
|  
|--src/somefolder/somefile.yaml

답변1

나는 마침내 다음을 선택했습니다.

rsync -avrmR --exclude='node_modules/' --include='*/' --include='*.yaml' --exclude='*' ./ ./dist

작동 방식은 먼저 node_modules 폴더의 모든 항목을 제외하고 모든 디렉터리를 포함시킨 다음 yaml 파일만 포함하고 다른 모든 항목은 제외하는 것입니다.

답변2

나는 다음과 같이 이 작업을 수행했습니다.

$ rsync -r --exclude="node_modules" projectroot/* dist/

관련 정보