复杂包含/排除rsync

前端之家收集整理的这篇文章主要介绍了复杂包含/排除rsync前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试编写rsync过滤器语法来执行复杂的包含/排除,并尝试实现以下目的:
Include /
Exclude /home
Include /home/user1/*
Include /home/user2/subdir/*

我已经尝试了很多关于过滤器语法的变体,尽管很多时候都阅读了man page,但我无法获得这种效果. Rsync过滤器似乎非常强大,我发现很难相信他们无法处理像这样的常见场景.

解决方法

在使用排除规则之前,您需要将所有父目录包含在所需目录中.

例如,我在备份脚本中使用以下内容

rsync -av \ 
--filter='+ /var/' \
--filter='+ /var/backups/' \
--filter='- /var/*' \
/ \
$DEST

因此,在您的情况下,您需要以下内容

rsync -av \ 
--filter='+ /home/' \
--filter='+ /home/user1/' \
--filter='+ /home/user2/' \
--filter='+ /home/user2/subdir/' \
--filter='- /home/user2/*' \
--filter='- /home/*' \
/ \
$DEST

猜你在找的Linux相关文章