Искам да използвам 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
Какво направих погрешно?
Отговори:
2 за отговор № 1Проверете реда на разширенията в man bash
: разширение на пръстена се случва на първо място, променливо разширение се случва по-късно. Следователно, скобите в променливата не се разширяват.
Можете да използвате масив за заснемане на стойностите, като вече използвате разширението в заданието:
opts=( -a --exclude={/dev,/proc,/sys,/tmp,/run,/mnt,/media,/lost+found} --link-dest="$LNK" )
rsync "${opts[@]}" "$SRC" "$TRG"