我想使用rsync进行增量备份。但是,当我这样尝试它时失败了:
SRC="/"
TRG="/backup/"
LNK="/oldbackup/"
OPT="-a --exclude={/dev,/proc,/sys,/tmp,/run,/mnt,/media,/lost+found} --link-dest=$LNK"
rsync $OPT $SRC $TRG
但是这样的工作:
SRC="/"
TRG="/backup/"
LNK="/oldbackup/"
rsync -a --exclude={/dev,/proc,/sys,/tmp,/run,/mnt,/media,/lost+found} --link-dest=$LNK $SRC $TRG
我做错了什么?
答案 0 :(得分:2)
检查man bash
中扩展的顺序:首先发生大括号扩展,稍后发生变量扩展。因此,变量中的大括号不会扩展。
您可以使用数组捕获值,使用已在赋值中的扩展:
opts=( -a --exclude={/dev,/proc,/sys,/tmp,/run,/mnt,/media,/lost+found} --link-dest="$LNK" )
rsync "${opts[@]}" "$SRC" "$TRG"