给定两个目录/.../src
和/.../des
,
- 他们共享一些子目录
share1
并且share2
des
还有一个名为 的子目录,des1
该子目录不存在于src
.
我如何执行从src
到 的文件传输des
(通过rsync
或您喜欢的其他程序),以便
根据中的同名目录更新
share1
和,包括share2
des
src
des/share1
删除和中des/share2
但不在src/share1
和中的所有文件src/share2
,des/share1
添加不在和des/share2
中但在src/share1
和中的所有文件src/share2
,并且- 更新 和 中的所有文件,或同时更新 和
des/share1
中的src/share1
所有文件,des/share2
src/share2
保持
des/des1
完好无损?谢谢。
答案1
有两种选择。两者都使用rsync
.
任何一个:只更新share1
和share2
删除目标中的未知文件
rsync --dry-run -avP --delete .../src/share1 .../src/share2 .../des/
或者:更新 中的所有内容des
,删除目标中的未知文件,除了des1
rsync --dry-run -avP --delete --exclude '/des1' .../src/ .../des/
当您对结果感到满意时,删除--dry-run
.