내 디렉토리 구조는 다음과 같습니다
./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.txt
rsync는 다음과 같이 모든 하위 디렉터리에서만 재귀적으로 동기화하는 데 사용할 수 있습니다.
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
.