这是将文件夹结构(不带文件)从一个位置复制到另一个位置和Rsync如何包含目录但不包含文件?的后续内容,尽管不是重复的。
本质上,我想做同样的事情,即 将目录树从
src
复制到dst
,而不复制任何文件(递归),除了我还想跳过所有隐藏文件夹(递归)。
通过添加 --exclude '.*/'
来调整
此答案未按预期工作:
rsync -av --include '*/' --exclude '.*/' --exclude '*' src/ dst/
因为它还复制隐藏(点)目录,
.hidden
在以下示例中:
building file list ... done
./
.hidden/
a/
a/.hidden/
我希望能解释为什么该尝试不起作用以及问题的解决方案。
来自 rsync 手册页:
规则的顺序很重要,因为第一个匹配的规则就是生效的规则。
因此,将包含移到第一个排除之后::
rsync -av --exclude '.*/' --include '*/' --exclude '*' src/ dst/