如何通过Rsync仅同步指定单个子文件夹及其所有内容?
解决rsync仅指定子文件夹同步的问题
你需要调整include和exclude的顺序与匹配规则,rsync的匹配是从左到右依次生效,所以要先明确包含目标文件夹及其内容,再排除所有其他内容。
正确的命令如下:
rsync -z --update --delete --recursive --verbose --delete-excluded --include='childthree/' --include='childthree/**' --exclude='*' /var/www/various/ root@some.domain.com:/home/backup/
参数说明:
--include='childthree/':优先匹配并包含/var/www/various/下的childthree文件夹本身--include='childthree/**':包含childthree文件夹内的所有文件、子目录及子目录内容--exclude='*':最后排除/var/www/various/下的所有其他文件和文件夹
你之前的/***/childthree模式问题在于:当源路径末尾带斜杠(/var/www/various/)时,rsync会直接处理该目录下的内容,不需要上层通配符,直接匹配当前目录下的目标文件夹即可。
内容的提问来源于stack exchange,提问作者eyeprotocol
相关产品推荐
相关产品推荐

