rsync 옵션을 사용하고 있습니다 include-from="external file"
. 그 외에는 내 질문이 거의 같습니다.이것.
매우 특정한 하위 폴더를 백업하고 싶지만 일반적으로 숨겨진 폴더는 백업하지 않으려고 합니다. 내가 이 작업을 수행할 수 있었던 유일한 방법은 다음과 같습니다.
+ home/*/.config/libreoffice/
+ home/*/.config/libreoffice/4/
+ home/*/.config/libreoffice/4/user/
+ home/*/.config/libreoffice/4/user/registrymodifications.xcu
# hide the rest ( .local, .wine, most of .config ...)
- home/*/.*/
처음 3줄이 없으면 registrymodifications.xcu
상위 수준 디렉터리가 마지막 줄에 "적중"될 때까지 일치하지 않기 때문에 제외됩니다. 따라서 내 경험상 해당 항목을 넣어야 합니다. 모두 화이트리스트에 있습니다.
이보다 더 고통스러운 방법이 있나요?(여전히 모든 백업 규칙을 외부 파일에 저장하고 싶습니다...)
답변1
명령줄에서 다음을 수행합니다.
rsync -ai \
--prune-empty-dirs \
--include='*/' \
--include='home/*/.config/libreoffice/4/user/registrymodifications.xcu/***'
--exclude='*' \
"$source" "$destination"
여기에는 모든 디렉터리, registrymodifications.xcu
하위 디렉터리 및 그 아래의 모든 파일이 반복적으로 포함되지만 다른 규칙에 명시적으로 포함되지 않은 항목은 제외됩니다. 또한 --prune-empty-dirs
( -m
)를 사용하는데, 이는 대상에 빈 디렉터리가 생성되지 않음을 의미합니다.
그 결과 두 번째 포함 규칙과 일치하는 파일 및 디렉터리만 실제로 전송됩니다.
또는 필터 파일로:
+ */
+ home/*/.config/libreoffice/4/user/registrymodifications.xcu/***
- *
...당신은 사용할 것입니다
rsync -ai \
--prune-empty-dirs \
--include-from=patterns \
"$source" "$destination"
이에 대해 주목해야 할 점은 규칙을 포함하는 두 번째 빈 디렉터리를 일치시키는 것은아니요이 옵션 덕분에 --prune-empty-dirs
대상에서 생성이 가능합니다.