rsync를 사용할 때 대상의 특정 폴더를 제외하는 방법은 무엇입니까?

rsync를 사용할 때 대상의 특정 폴더를 제외하는 방법은 무엇입니까?

다음 예를 고려하십시오.

/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" /출처/ /목적지/

관련 정보