rsync - 包含“仅”源目录

rsync - 包含“仅”源目录

假设我有以下顶级文件夹

驱动器1:

./Folder 1
./Folder 2

驱动器2:

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

在满足以下条件的情况下,如何仅将文件夹 1 和 2 从 Drive1 同步到 Drive2

  • Drive1的完全同步Folder 1Folder 2包括删除)
  • 请勿触摸Drive2 上的Folder 3Folder 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仅选择所需的目录,因为这样您还必须明确排除您不想传输的目录(这是您想要避免的) 。

相关内容