rsync 同步子文件夹,同时尊重原始文件夹排除规则

rsync 同步子文件夹,同时尊重原始文件夹排除规则

我有一个 bash 脚本,它在存在排除规则的情况下将源文件夹同步到目标文件夹。

类似于

rsync -l -a -no-g --delete --exclude $PATTERN $SRC $DST

我想添加仅复制 $SRC 的特定子文件夹的功能,同时保留原始排除语义,例如 ifa/b是子文件夹并且模式是*/*/cthen$SRC/a/b/c将被忽略,但是$SRC/a/b/d,$SRC/a/b/e将被转移(我希望我做对了)。

我想一种解决方案是结合子文件夹和 $SOURCE 并以某种方式修改或添加排除模式(类似rsync ... --exclude c --exclude a/b/c $SRC/a/b $DST

或者,对于更通用的解决方案,最好只添加 --include 文件夹内容并排除其他所有内容?就像是

rsync ... --排除 a/b/c --排除 '/'--包括/a/b/

rsync ... --排除 $PATTERN --排除 '/'--包括$SUB/$SRC $DST

看起来像是寻址之前讨论过的特定文件夹https://stackoverflow.com/questions/15687755/how-to-use-rsync-to-copy-only-specific-subdirectories-same-names-in-several-dir 尽管不存在先前的排除模式

假设文件夹串联问题可以解决,我更担心分心。此外,子文件夹本身不太可能被排除模式完全禁止。

暂时,尽力而为的解决方案对我来说没问题,但请告诉我是否应该发布到 stackoverflow 或计算科学交换。

相关内容