rsync - "만" 소스 디렉토리를 포함합니다.

rsync - "만" 소스 디렉토리를 포함합니다.

다음과 같은 최상위 폴더가 있다고 가정해 보겠습니다.

드라이브 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원하는 디렉터리만 선택할 수는 없습니다. 왜냐하면 전송하고 싶지 않은 디렉터리도 명시적으로 제외해야 하기 때문입니다(이것이 피하고 싶은 것입니다).

관련 정보