一般调试信息
最简单的方法是使用
-vv
(将详细程度增加两次)与
-n
(干运行)。
使用double verbosity,您将看到哪个模式导致忽略哪个文件。
你可以
grep
输出只能看到相关部分。
例子
% rsync -avv --include 'opt/1' --exclude 'opt/*' -n ./ /tmp \
| grep '\[sender\]'
[sender] showing directory opt/1 because of pattern opt/1
[sender] hiding directory opt/2 because of pattern opt/*
[sender] hiding directory opt/3 because of pattern opt/*
具体答案
你的例子失败了,因为
+ /home/**
被排除在外
- *
是的。
man rsync
国家:
注意,当使用--recursive(-r)选项(由-a暗示)时,从左到右访问每个路径的每个subdir组件,每个目录在其内容之前都有机会被排除。
所以模式
/home/**
后评价
/home
被穿越,但这永远不会发生,因为
-*
排除
/家
是的。
包括
/home/
你只需要插入之前
/家/**
,因此排除文件变为:
+ /home/
+ /home/**
+ /opt/
+ /opt/**
- *