[unix] 특정 깊이의 하위 폴더와 재귀 적으로 재 동기화

내가 원하는 rsync재귀 적 폴더하지만 하위 폴더는 특정 깊이로 포함합니다.

예를 들어 다음과 같이 1, 2, 3 또는 4 개의 하위 폴더 깊이를 원합니다.

source/
├── subfolder 1
   ├── subsubfolder
      ├── subsubsubfolder
         └── wanted with depth 4.txt
      └── wanted with depth 3.txt
   └── wanted with depth 2.txt
├── subfolder 2
   └── wanted with depth 2.txt
└── wanted with depth 1.txt



답변

--exclude=옵션을 촉진하십시오 .

깊이 2 (폴더 및 하위 폴더 내의 파일)와 동기화하려면

rsync -r --exclude="/*/*/" source/ target/

그것은 당신에게 이것을 줄 것입니다 :

target/
├── subfolder 1
   └── wanted with depth 2.txt
├── subfolder 2
   └── wanted with depth 2.txt
└── wanted with depth 1.txt

깊이 3 (폴더, 하위 폴더 및 하위 하위 폴더 내의 파일)에 동기화하려면

rsync -r --exclude="/*/*/*/" source/ target/

당신에게 줄 것이다 :

target/
├── subfolder 1
   ├── subsubfolder
      └── wanted with depth 3.txt
   └── wanted with depth 2.txt
├── subfolder 2
   └── wanted with depth 2.txt
└── wanted with depth 1.txt


답변