다음과 같은 최상위 폴더가 있다고 가정해 보겠습니다.
드라이브 1:
./Folder 1
./Folder 2
드라이브 2:
./Folder 1
./Folder 2
./Folder 3
./Folder 4
다음 조건이 충족되는 경우 Drive1에서 Drive2로 폴더 1과 2만 동기화하는 방법
- Drive1의 전체 동기화
Folder 1
(Folder 2
삭제 포함) Folder 3
및 을 만지지 마십시오 .Folder 4
- 옵션을 사용하여 무시할
--exclude-from
폴더를 지정하고 싶지 않습니다(이 옵션이 특정 드라이브에 대한 범용 솔루션이 되기를 원하므로).
도움을 주시면 감사하겠습니다!
답변1
rsync -a --delete "/src/path/Folder 1/" "/dst/path/Folder 1/"
rsync -a --delete "/src/path/Folder 2/" "/dst/path/Folder 2/"
또는 폴더 이름이 다음인 경우 $@
:
for name in "$@"; do
rsync -a --delete "/src/path/$name/" "/dst/path/$name/"
done
$@
다음 방법 중 하나로 폴더 이름을 얻을 수 있습니다.
set -- "Folder 1" "Folder 2"
또는 다음과 같은 스크립트를 호출하여
./script "Folder 1" "Folder 2"
내가 아는 한, --include
원하는 디렉터리만 선택할 수는 없습니다. 왜냐하면 전송하고 싶지 않은 디렉터리도 명시적으로 제외해야 하기 때문입니다(이것이 피하고 싶은 것입니다).