rsync를 사용하여 하위 디렉터리의 내용 복사를 건너뛰세요.

rsync를 사용하여 하위 디렉터리의 내용 복사를 건너뛰세요.
rsync -avzm -e ssh /path/to/src/folder/ /path/to/dest/folder 
 --include=*/ --include=*/config.xml --exclude=*

보조 디렉터리에 파일(예: config.xml)을 복사하려면 rsync를 사용해야 합니다. 현재 위 스크립트를 사용하고 있으며 모든 디렉토리 수준에서 config.xml을 복사하고 있습니다.

위 명령을 어떻게 변경해야 합니까?

답변1

이 시도:

rsync -avzm -e ssh -f'- /*/*/' -f'+ config.xml' \
    /path/to/src/folder/ /path/to/dest/folder

설명하다

  • -frsync필터링 규칙이 활성화됩니다 .
  • - /*/*/:
    • -배제된 규칙을 의미합니다.
    • /*/*/레벨에서 모든 하위 디렉토리를 제외합니다 3rd.
  • + config.xml: rsync가 파일 이름에 포함된 모든 파일을 +복사하도록 하는 포함 규칙을 의미합니다 .config.xml

$ ls -R dir1/
dir1/:
dir2  dir22

dir1/dir2:
config.xml.2  dir3

dir1/dir2/dir3:
config.xml

dir1/dir22:
config.xml.22  dir33

dir1/dir22/dir33:
config.xml

$ rsync -r -f'- /*/*/' -f'+ config.xml' dir1/ /tmp

$ ls -R /tmp/dir2*
/tmp/dir2:
config.xml.2

/tmp/dir22:
config.xml.22

관련 정보