![rsync:删除除一个文件夹之外的所有文件夹](https://linux22.com/image/1066024/rsync%EF%BC%9A%E5%88%A0%E9%99%A4%E9%99%A4%E4%B8%80%E4%B8%AA%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B9%8B%E5%A4%96%E7%9A%84%E6%89%80%E6%9C%89%E6%96%87%E4%BB%B6%E5%A4%B9.png)
我有一个这样的树:/home/me/A/secret/
。我想(递归地)同步目标文件夹中的文件夹/home/me/A/
(包括子文件夹secret
)/opt
。此外,我还想删除源文件夹中的文件,但不在目标文件夹中的文件,除了文件是否属于该secret
文件夹。
确实,该文件夹不会一直存在于机器上,并且在这种情况下secret
我不想删除远程服务器上的文件夹。secret
我尝试过:该选项--delete
会删除所有内容,因此我尝试了--delete --exclude secret/
,但问题是它甚至不会同步的内容secret/
。然后,--filter "protect ..."
需要一个包含我想要保护的所有文件的文件,这确实不切实际。
所以现在我发现的最佳选择是运行两个 rsync 实例:一个用于--exclude secret/ --delete
处理secret
文件夹之外的所有内容,然后我运行另一个 rsync 将子文件夹直接同步secret
到良好的位置。
有没有one-command
办法做到这一点?
谢谢!