我有两个目录/test
:
$ ls /test/
dir1 dir2
我跑:
$ rsync --recursive --links --perms --executability --times --delete /dir2 /test/
我的期望是/test/dir1
被删除,但事实并非如此。有什么办法可以实现这一点吗? rsync 的所有--delete*
选项似乎都无法完成这项工作。
谢谢并致以最诚挚的问候,马丁
答案1
/
由于源路径末尾没有( /dir2
),因此您指示与rsync
同步。添加后,将删除中不存在的所有内容。/dir2
/test/dir2
--delete
rsync
/test/dir2
/dir2
任何一点都不会被/test/dir1
访问或考虑。
但是,如果您用作/dir2/
源路径,rsync
则会/dir2
与/test
(not /test/dir2
) 同步。添加--delete
将删除两者/test/dir2
,/test/dir1
因为两者都不存在/dir2/dir1
,也/dir2/dir2
不可能存在。
目标路径上的尾随/
是无关紧要的,但源路径上的尾随/
决定是否应将源目录作为目标路径下的单独目录同步(不带/
),或者是否rsync
应将其同步到目标路径本身(带/
)。