Я думаю, здесь вы ошиблись:
Если я попытаюсь запустить:
btrfs subvolume snapshot /mnt/disk/root/snapshots/2015-05-01 /mnt/disk/root
Он создает новый подтом как /mnt/disk/root/2015-05-01 вместо заменив /mnt/disk/root/.
Снимок подтома btrfs
используется для создания снимка первого аргумента и размещения его в каталоге, заданном вторым аргументом. Похоже, вы ожидаете, что вместо этого заменит /mnt/disk/root
.
Перед попыткой перезаписать подтом /mnt/disk/root
его необходимо переместить или удалить (например, mv /mnt/disk/root /mnt/disk/ резервное копирование корня во время восстановления
). Затем выполните:
btrfs subvolume snapshot /mnt/disk/root/snapshots/2015-05-01 /mnt/disk/
А затем:
mv /mnt/disk/2015-05-01 /mnt/disk/root
С bash
:
A=10
B=20
C=0
D=1
for var in A B C D; do
if [ ${!var} -eq 0 ]; then
echo "$var value is 0"
else
echo "Ok"
fi
done
Используйте -eq
для сравнения целочисленных значений (или используйте (($ {! Var} == 0))
или ((! $ {! Var}))
, что то же самое), и используйте $ {! Var}
, чтобы получить значение переменной, имя которой хранится в переменной var
.
Или немного лучше, но по сути то же самое (все еще в bash
):
for var in A B C D E; do
case ${!var} in
0) printf '%s value is 0\n' "$var" ;;
*) echo 'Ok' ;;
esac
done
Это обрабатывает значения как строки, а не как целые числа.