rsync:删除 dest 中的无关文件和目录

rsync:删除 dest 中的无关文件和目录

我有两个目录/test

$ ls /test/
dir1  dir2

我跑:

$ rsync --recursive --links --perms --executability --times --delete /dir2 /test/

我的期望是/test/dir1被删除,但事实并非如此。有什么办法可以实现这一点吗? rsync 的所有--delete*选项似乎都无法完成这项工作。

谢谢并致以最诚挚的问候,马丁

答案1

/由于源路径末尾没有( /dir2),因此您指示与rsync同步。添加后,将删除中不存在的所有内容。/dir2/test/dir2--deletersync/test/dir2/dir2

任何一点都不会被/test/dir1访问或考虑。

但是,如果您用作/dir2/源路径,rsync则会/dir2/test(not /test/dir2) 同步。添加--delete将删除两者/test/dir2/test/dir1因为两者都不存在/dir2/dir1,也/dir2/dir2不可能存在。

目标路径上的尾随/是无关紧要的,但源路径上的尾随/决定是否应将源目录作为目标路径下的单独目录同步(不带/),或者是否rsync应将其同步到目标路径本身(带/)。

相关内容