rsync - 「のみ」ソースディレクトリを含みます。

rsync - 「のみ」ソースディレクトリを含みます。

次の最上位フォルダがあるとします。

ドライブ1:

./Folder 1
./Folder 2

ドライブ2:

./Folder 1
./Folder 2
./Folder 3
./Folder 4

次の条件が満たされた場合、Drive1からDrive2にフォルダ1と2のみを同期する方法

  • Drive1の完全同期Folder 1Folder 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希望のディレクトリだけを選択することはできません。なぜなら、転送したくないディレクトリも明示的に除外しなければならないからです(これが避けたいものです)。

おすすめ記事