원격 서버의 특정 하위 디렉터리에 있는 특정 파일만 재귀적으로 동기화

원격 서버의 특정 하위 디렉터리에 있는 특정 파일만 재귀적으로 동기화

내 디렉토리 구조는 다음과 같습니다

./model1
./model1/correct_data/file1.txt
./model1/bad_data/file1.txt
./model2
./model1/correct_data/file1.txt
./model1/bad_data/file1.txt

file1.txt하위 디렉터리에 있는 것만 동기화하면 됩니다 .correct_data

file1.txtrsync는 다음과 같이 모든 하위 디렉터리에서만 재귀적으로 동기화하는 데 사용할 수 있습니다.

rsync -zarvL --prune-empty-dirs --include "*/" --include="file1.txt" --exclude="*"' <from> <to>

correct_data하지만 하위 디렉터리 에 동기화를 추가하는 방법을 잘 모르겠습니다.

답변1

나는 이것을 사용할 것이다

(
  cd {from} &&
    rsync -zavLR */correct_data/file1.txt {to}/
)

새로운 구성 요소는 -R각 파일의 소스 경로를 대상 루트 디렉터리에 적용하는 것 입니다 {to}. -r에서 제안한 대로 제거했습니다 -a. -z대상이 실제로 원격 대상인 경우 에만 관련됩니다. 정말로 진심인가요 -L?

cd {from}서브쉘은 명령의 제한 점수를 유지합니다 rsync.

관련 정보