当我这样做时:
rsync folder/a /mnt/some/destination
我最终得到/mnt/some/destination/folder/a
,但我想要的是folder/a
内容直接地里面/mnt/some/destination
。
我知道如果我这样做是可能的:
rsync folder/a/* /mnt/some/destination
然而,这是问题的关键,这不适用于该--delete
选项。该选项要求源是目录,因此通配符不起作用。
解决方法是
cd folder/a && rsync --delete . /mnt/some/destination
有没有办法在不更改工作目录的情况下执行此操作?我的场景是 CD/CI 构建环境。
有没有像tar -C
, 或 之类的选项wget --cut-dirs
?
答案1
代替:
rsync folder/a /mnt/some/destination
使用:
rsync folder/a/ /mnt/some/destination
这将允许--delete
删除目标中源中不存在的文件,并将 的内容folder/a
直接放入/mnt/some/destination/
.