
로컬 버전에는 다음 디렉터리만 포함될 수 있도록 두 디렉터리를 "동기화" 상태로 유지하고 싶습니다.하위 집합원격 버전의. 따라서 동기화를 수행하면 로컬 하위 집합에 대한 변경 사항이 원격 디렉터리로 푸시되고, 관련 하위 집합에 대한 원격 디렉터리의 변경 사항이 로컬 디렉터리로 당겨지게 됩니다. 그러나 명시적으로 복사하지 않고 원격 디렉터리에서 새 파일이나 디렉터리를 가져오는 것을 원하지 않습니다.
(이렇게 하고 싶은 이유는 원격 서버에 매우 큰 음악 컬렉션이 있지만 디스크 공간이 부족하여 랩톱에 전체 컬렉션을 한 번에 담을 수 없기 때문입니다. 하지만 무엇이든 유지하고 싶습니다. 여기에 로컬로 있는 컬렉션의 일부는 서버의 관련 부분과 동기화됩니다. 특히 ID3 태그, Vorbis 댓글 등을 업데이트한 경우)
맨 페이지의 문서에 따르면 rsync의 --ignore-non-existing
플래그는 이를 수행하는 합리적인 방법처럼 보였지만 예상한 결과를 얻지 못했습니다. 두 루트 디렉터리 모두 동일한 하위 디렉터리를 포함하더라도 첫 번째 수준의 하위 디렉터리를 건너뜁니다.
예를 들어, 원격 디렉터리 에 and 가 example.org:/path/to/it/
포함되어 있고 로컬 디렉터리에 and 가 포함되어 있으면 다음과 같은 결과를 얻습니다.dir1
dir2
/other/dir/
dir1
dir2
$ rsync --dry-run --ignore-non-existing example.org:/path/to/it/ /other/dir/
skipping directory .
아니면 와일드카드로 시도해 보세요...
$ rsync --dry-run --ignore-non-existing example.org:/path/to/it/* /other/dir/
skipping directory dir1
skipping directory dir2
이 플래그를 올바르게 사용하는 방법을 아는 사람이 있습니까? 아니면 내가 그 목적을 오해하고 있는 걸까? 또는 디렉터리의 하위 집합을 동기화 상태로 유지하기 위한 다른 제안 사항이 있으면 알려주시기 바랍니다.
감사해요. :)
답변1
재귀적으로 시도해 보세요:
rsync --recursive --dry-run --ignore-non-existing example.org:/path/to/it/ /other/dir/