저는 rsync
다음과 같이 원격 폴더 트리를 재귀적으로 동기화하는 데 사용합니다.
/folderA/a1/cache
/folderA/a1/cache/A1
/folderA/a1/cache/A2
/folderA/a1/somefolder
/folderA/a1/someotherfolder
/folderA/a2/somefolder/cache
/folderB/cache/
/folderB/b1/somefolder/cache
/folderB/b1/somefolder/yetanotherfolder/cache
/folderB/b1/somefolder/yetanotherfolder/cache/B1
/folderB/b1/somefolder/yetanotherfolder/cache/B2
폴더 트리가 어떻게 보일지는 모르겠지만, 시간이 지나면 바뀔 것입니다. 그래서 제가 하고 싶은 것은 rsync
위의 작업을 재귀적으로 수행하는 것입니다.들어오지 못하게 하다폴더 "캐시" 및 여기에 포함된 모든 하위 폴더:
/folderA/a1
/folderA/a1/somefolder
/folderA/a1/someotherfolder
/folderA/a2/somefolder
/folderB/
/folderB/b1/somefolder
/folderB/b1/somefolder/yetanotherfolder/
어떤 제안이 있으십니까?
답변1
--exclude
당신은 깃발을 원합니다 . 예를 들어 로컬 rsync는 다음과 같습니다.
rsync -a --exclude cache/ src_folder/ target_folder/
정말 간단합니다. 제외 규칙은 cache
트리의 이름이 지정된 디렉터리와 일치합니다. 마지막 것은 /
디렉토리와 일치하도록 강제하여 이름이 지정된 파일을 제외하지 않도록 합니다 cache
.
경로를 일치시킬 수도 있습니다. 다음 트리가 주어지면:
a1/cache/
b1/cache/
sub/a1/cache/
--exclude a1/cache/
일치 a1/cache
하지만 sub/a1/cache
일치하지 않습니다 b1/cache
. 그리고 --exclude /a1/cache/
오직 일치합니다 a1/cache
.
rsync 필터링으로 할 수 있는 일이 훨씬 더 많습니다. rsync 매뉴얼 페이지에서 특히 "FILTER RULES" 및 "PATTERN MATCHING RULES" 섹션을 찾으 세요 --exclude
.--include
--filter