![원격 서버의 특정 하위 디렉터리에 있는 특정 파일만 재귀적으로 동기화](https://linux55.com/image/9791/%EC%9B%90%EA%B2%A9%20%EC%84%9C%EB%B2%84%EC%9D%98%20%ED%8A%B9%EC%A0%95%20%ED%95%98%EC%9C%84%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EC%97%90%20%EC%9E%88%EB%8A%94%20%ED%8A%B9%EC%A0%95%20%ED%8C%8C%EC%9D%BC%EB%A7%8C%20%EC%9E%AC%EA%B7%80%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EB%8F%99%EA%B8%B0%ED%99%94.png)
내 디렉토리 구조는 다음과 같습니다
./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
.