在rsync中,我试图排除与模式匹配的子目录。但是,我无法使其正常工作。我遵循了在此处和在Google上找到的几个示例。但是,我没有得到正确的结果。这是我命令的选项:
-avh --exclude 'branch*' --stats --delete --link-dest=$LNK
我的源目录结构是
/root
/branch1
/branch2
/branch3
/other
/stillAnother
/etc
这是备份脚本的一部分。$ LNK是到前一天的rsync目标的链接。
我不想要/ root / branch1,/ root / branch2,/ root / branch3。或要同步的内容。但是,他们是。
这是我已经尝试过的排除位:
--exclude=branch*
--exclude='branch*'
--exclude '/branch*'
--exclude /branch*
感谢您的帮助/咨询。
编辑-解决“可能重复”标志
这个问题是关于目录的已知列表。我需要排除遵循模式的所有目录,即使这些目录尚不存在。即从我的示例,/branch*
可以添加其他名称的目录。我需要使脚本适应未来的需要,并在添加与模式匹配的目录时避免编辑脚本,因为这些目录可能是临时的。
您的排除参数可以。如果rsync在复制时忽略了branch *,则从dest中删除时也将忽略它,因此您必须在目标位置一次手动删除这些目录。
—
Ipor Sircer
目的地是一个新的空目录,由我的bash脚本创建。我确实从link-dest目录中删除了branch *目录,但无济于事。
—
Roger Creasy
你必须使用一个明确完整的图案像
—
康提巴斯2016年
*branch*
或者/root/branch*
没有短branch*
-短表中没有找到,因此不排除。
@Kondybas所以,除了我需要在我的排除分支前面加上“ *”之外,其他所有选项都可以吗?(
—
Roger Creasy
--exclude '*branch*
)
可能的重复rsync的-排除除少数所有目录
—
MDPC