Общий совет проверить, установлена ли ваша переменная, является полезным инструментом для предотвращения такого рода проблем. Но в этом случае было более простое решение.
Скорее всего, для удаления содержимого каталога $build
нет необходимости, но не самого фактического каталога $build
. Таким образом, если вы пропустите лишнее *
, тогда неустановленное значение превратится в rm -rf /
, которое по умолчанию большинство реализаций rm за последнее десятилетие откажутся выполнять (, если вы не отключите эту защиту с помощью опции GNU rm --no-preserve-root
). ].
Пропуск конечного /
также приведет к rm ''
, что приведет к сообщению об ошибке:
rm: can't remove '': No such file or directory
Это работает, даже если ваша команда rm не реализует защиту для /
.
Каталог /var
содержит пару символических ссылок:-
/var/lock/
->/run/lock/
/var/run/
->/run/
Я не думаю, что команда cp
копирует символические ссылки.
Возможно, вам нужно их воссоздать?
Я бы не стал удалять старые данные /var до тех пор, пока у вас не будет несколько дней проблем -без работы.