Rsync의 포함 및 제외 패턴을 잘 이해할 수 없습니다.

Rsync의 포함 및 제외 패턴을 잘 이해할 수 없습니다.

첫째, 나는 이 주제에 관해 많은 것을 읽었습니다.Rsync 필터: 하나의 패턴만 복사), 그래도 이해가 안 되거나 설치에 문제가 있는 것 같아요...

내 구조 "from"은 다음과 같습니다.

Windows
Users
  User1
    Documents
      doc1.txt
      doc2.txt
    AppData
    Downloads
  User2
    Documents
      doc3.txt
      doc4.txt
    AppData
    Downloads

모든 사용자에 대해 모든 문서 폴더와 하위 폴더를 백업하고 싶지만 AppData 및 다운로드 구조는 백업하고 싶지 않습니다.

내가 원하는 목적지에 관해:

Users
 User1
  Documents
   doc1.txt
   doc2.txt
 User2
  Documents
   doc3.txt
   doc4.txt

나는 많은 패턴을 시도했지만 그중 어느 것도 잘 작동하지 않았습니다. 이것부터 시작해보자:

rsync -av --include="*/" --exclude="*/AppData" --exclude="*/Downloads" /source/Users /destination

각 사용자의 AppData 및 다운로드 폴더와 하위 폴더를 제외하려면 어떻게 해야 합니까?

감사해요

거의 동일한 내용을 논의하는 또 다른 스레드가 있습니다(내가 잘 이해한 경우). 절대 경로를 사용한 rsync 및 하위 경로 제외

내 상황에 맞게 답변을 조정했지만 애플리케이션 데이터와 다운로드가 여전히 대상 경로에 존재합니다.

rsync -av --no-p  --include="*/" --include="*/Documents/**" --exclude="** /source/Users /destination

답변1

많은 쉘에서는 기호가 *포함되지 않습니다 /(앞에 오는 대신 .)(참조남자 7 공globstar|) dotglob옵션이 shopt있으므로 제외하려는 경우애플리케이션 데이터그리고다운로드전체 경로를 제공해야 합니다.원천( --exclude="*/*/AppData" --exclude="*/*/Downloads") 또는 이름만 유지합니다 ( --exclude="AppData" --exclude="Downloads") 디렉토리가 어느 수준에 있는지는 중요하지 않습니다.

rsync -av --exclude="AppData" --exclude="Downloads" /source/Users /destination

관련 정보