rsync:删除除一个文件夹之外的所有文件夹

rsync:删除除一个文件夹之外的所有文件夹

我有一个这样的树:/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办法做到这一点?

谢谢!

相关内容