考虑我的本地文件夹
/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
远程仍然存在,为什么?
它不会删除,4.txt
因为您正在rsync
使用*
,即在单个源文件上运行命令。因此,rsync
甚至不考虑4.txt
(或包含目录)。相反,在包含源的目录上运行它,通过将 更改*
为.
然后,rsync
可以查看整个目录,看看缺少什么。
rsync --exclude=3.txt -avcz --delete . ubuntu@server:/tmp/foo/
Run Code Online (Sandbox Code Playgroud)