我有一个 bash 脚本,它在存在排除规则的情况下将源文件夹同步到目标文件夹。
类似于
rsync -l -a -no-g --delete --exclude $PATTERN $SRC $DST
我想添加仅复制 $SRC 的特定子文件夹的功能,同时保留原始排除语义,例如 ifa/b
是子文件夹并且模式是*/*/c
then$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 或计算科学交换。