我尝试将内容同步回远程服务器,不同之处在于服务器有一个新的 /home/virtual 文件夹,我不想触碰它:
rsync -avz --numeric-ids --fake-super --delete --delete-after --exclude='/home/virtual' --stats -e "/usr/bin/ssh -i backupkey" /backups/machine1/home/ [email protected]:/home
有没有办法告诉 rsync 进行同步,但不要触碰该文件夹?如果我删除 --delete 键,则需要删除的其他内容将不会被删除,因此这不是一个选择。排除指令似乎仅适用于源。
谢谢
答案1
遗憾的是 --exclude 适用于源端,而不是目标端(如您所说)。我最好的建议是将要保留的数据移出目标区域。例如,不要使用 /home/virtual,而要使用 /keep/virtual
答案2
我有同样的问题,我可以理解--exclude
这种行为,请参阅:https://unix.stackexchange.com/a/83403。
关键细节是斜线的位置很重要。引用自链接:
如果在源目录末尾附加一个斜杠,
rsync -a source/ destination
它将复制源的内容,否则rsync -a source destination
将源目录本身复制到目标。