我有一个rsync脚本,使用以下代码行备份用户的主文件夹:
/usr/bin/caffeinate -i /usr/bin/rsync -rlptDn --human-readable --progress --ignore-existing --update $PATH/$NAME/ --exclude=".*" --exclude="Public" --exclude="Library" /Volumes/Backup/Users/$NAME\ -\ $DATE
如何忽略~/Library/
中的所有内容,而忽略~/Library/Mail/
?我希望包含此rsync
标记--include="/Library/Mail"
,但我不确定是否应过分依赖rsync
排除&包含因为它可能变得不可靠并且在不同版本的OS X rsync之间变化。
也许命令行正则表达式工具会更有用?示例:
ls -d1 ~/Library/*| grep -v '^mail' > $ALIST
exec <${ALIST}
read SRC
do
.
.
.
$RSYNC..etc...
答案 0 :(得分:0)
rsync的--include
和--exclude
选项遵循所谓的&#34;优先级&#34;所以你可以依赖一个坚定的规则,这意味着你在排除之前明确包含的内容将是发送的内容。
在您的情况下,在第一个--include ~/Library/Mail
之前添加--exclude
。