![rsync:当远程文件夹仅包含排除的文件时删除远程文件夹](https://linux22.com/image/229353/rsync%EF%BC%9A%E5%BD%93%E8%BF%9C%E7%A8%8B%E6%96%87%E4%BB%B6%E5%A4%B9%E4%BB%85%E5%8C%85%E5%90%AB%E6%8E%92%E9%99%A4%E7%9A%84%E6%96%87%E4%BB%B6%E6%97%B6%E5%88%A0%E9%99%A4%E8%BF%9C%E7%A8%8B%E6%96%87%E4%BB%B6%E5%A4%B9.png)
假设我有两个文件夹A/
和B
,其中包含以下内容:
$ ls A/
main.tex
main.log
main.pdf
$ ls B/
project.tex
project.log
project.pdf
进一步假设该文件夹B/
仅存在于远程端(A/
两侧都存在)。rsync
使用该选项运行将从远程端--delete
删除文件夹。B/
但现在假设我使用rsync
with --exclude *.log
: 那么该文件B/project.log
将不会被删除,因此我会收到如下消息:
cannot delete non-empty directory: B
一种解决方案当然是使用--delete-excluded
--- 但这需要该文件A/main.log
将在同步时被删除。有没有解决的办法?换句话说,有没有办法rsync
删除远程端的文件夹(仅存在),当其唯一内容是排除文件时?
预先感谢您的帮助。
PS:这不仅仅是一个“学术”示例,这实际上影响了我在台式机和笔记本电脑之间保持同步的方式......