Mac OS Ventura下rsync强制同步Library目录,如何阻止?
rsync 同步时Library目录无法过滤的问题解决
为什么Library目录特殊?
你的过滤规则逻辑导致Library被意外包含:
- 规则里的
+ */会匹配所有子目录(包括隐藏的Library),这一步已经允许rsync遍历Library目录 - 后续的
- *是排除其他文件/目录,但Library已经被前面的+ */规则放行,所以rsync会尝试同步它 - 你添加的
-Library/*只是排除Library目录下的内容,但目录本身还是会被创建并尝试遍历,加上macOS对Library目录有严格的权限限制,就会出现权限拒绝报错
如何阻止Library同步?
调整过滤规则的顺序,在允许其他指定目录之前,先明确排除Library目录本身:
修改后的rsync_filter.conf内容:
+ */ - Library/ + Documents/*** + Music/*** + Pictures/*** + Work/*** - *
关键说明:
- Library/里的斜杠/必须加上,用来明确匹配Library目录本身,而不是同名文件- 规则顺序很重要:必须放在
+ */之后、其他允许目录之前,这样rsync会先匹配到排除Library的规则,覆盖之前的+ */允许规则 - 如果要连Library目录的空文件夹都不想创建,可以把规则改成
- Library(不带斜杠),但带斜杠的写法更精准,避免误排除同名文件
验证命令
执行原命令即可,修改过滤文件后,rsync会跳过整个Library目录,不会再出现权限报错:
rsync -avm --delete --filter="merge rsync_filter.conf" /Users/Me /Volumes/Backup
内容的提问来源于stack exchange,提问作者Marek Gierliński
相关产品推荐
相关产品推荐

