다음 예를 고려하십시오.
/source
/source/folder1
/source/folder2
/source/folder3
/destination
/destination/folder2
/destination/folder3
/destination/folder3/mytestfolder1
/destination/folder4
/destination/folder4/mytestfolder1
/destination/folder4/mytestfolder2
소스를 대상에 동기화하고 싶지만 "/destination/folder4/mytestfolder1"을 무시해야 합니다.
제외 매개변수를 사용해 보았습니다.
rsync -av --delete --progress --exclude "mytestfolder1" /source/ /destination/
그러나 이는 "mytestfolder1"이라는 이름의 모든 폴더를 무시합니다.
전체 경로를 제공하면 rsync가 경로가 대상이 아닌 소스에 있다고 생각하기 때문에 아무것도 무시되지 않습니다.
rsync -av --delete --progress --exclude "/destination/folder4/mytestfolder1" /source/ /destination/
rsync -av --delete --progress --exclude "destination/folder4/mytestfolder1" /source/ /destination/
온라인으로 검색했지만 유용한 내용을 찾지 못했습니다.
도와주셔서 감사합니다. :)
답변1
필터(포함/제외)에 절대 경로를 사용하는 경우 해석은 동기화 루트부터 시작됩니다. 소스의 디렉터리를 제외하지도 않고 대상의 디렉터리도 제외하지 않으며 동기화하려는 트리의 디렉터리를 제외하는 것입니다.
그러므로:
rsync -av --delete --progress --제외"/폴더4/mytest폴더1" /출처/ /목적지/