Rsync无法删除本地不存在的远程文件

Rya*_*yan 2 rsync wildcards

考虑我的本地文件夹

/tmp/foo/
/tmp/foo/1.txt
/tmp/foo/2.txt
/tmp/foo/3.txt
Run Code Online (Sandbox Code Playgroud)

和我的远程文件夹

/tmp/foo/
/tmp/foo/1.txt
/tmp/foo/2.txt
/tmp/foo/4.txt
Run Code Online (Sandbox Code Playgroud)

在我的本地,我在/tmp/foo文件夹中运行命令

rsync --exclude=3.txt -avcz --delete * ubuntu@server:/tmp/foo/
Run Code Online (Sandbox Code Playgroud)

我能够同步我的文件3.txt,但4.txt远程仍然存在,为什么?

Spa*_*awk 5

它不会删除,4.txt因为您正在rsync使用*,即在单个源文件上运行命令。因此,rsync甚至不考虑4.txt(或包含目录)。相反,在包含源的目录上运行它,通过将 更改*.然后,rsync可以查看整个目录,看看缺少什么。

rsync --exclude=3.txt -avcz --delete . ubuntu@server:/tmp/foo/
Run Code Online (Sandbox Code Playgroud)