Вы хотите удалить подстроки build
и .zip
из строки build102p12.zip
.
Предполагая, что у вас есть исходная строка в переменной оболочкиname
:
name='build102p12.zip'
name="${name#build}" # remove prefix "build"
name="${name%.zip}" # remove suffix ".zip"
$name
теперь будет строкой 102p12
.
Дополнительную информацию о подстановке переменных ${parameter#word}
и ${parameter%word}
см. в руководстве по вашей оболочке.
Если у вас есть линия (и больше ничего)
build name : build102p12.zip
в файлеbuildinfo
:
$ buildversion="$( grep -oE '[0-9]+p[0-9]+' buildinfo )"
Расширенное регулярное выражение [0-9]+p[0-9]+
будет соответствовать всему, что выглядит как NNNpNNN
, где каждое NNN
— это некоторая последовательность цифр. Это предполагает, что это происходит только один раз в файле buildinfo
.
btrfs — это файловая система ), поддерживающая несколько -устройств, (, поэтому ей нужен какой-то способ отслеживать, какие устройства являются частью данной файловой системы. На самом деле, если у вас несколько устройств, вы даете смонтировать только одно, а остальные btrfs находит сама.
Это делается с помощью UUID файловой системы, который, конечно же, теперь такой же, как и в вашей копии. btrfs сохраняет этот UUID много раз; btrfstune -u /dev/sdc
следует изменить их все (, но это может занять некоторое время,так как приходится переписывать кучу метаданных ). На относительно новых ядрах(патч от декабря 2018 ), btrfstune -m /dev/sdc
также должен работать без перезаписи всех метаданных. Обратите внимание, что некоторые люди сообщали о повреждении этих параметров, но вы уже работаете над копией.
Пожалуйста, прочтите ошибки btrfs , в частности предупреждение о блоке -копий уровней . Наличие двух копий одного из блочных устройств файловой системы побуждает ядро использовать неправильный (, потому что они имеют один и тот же UUID файловой системы, поэтому, насколько он может судить, это одно и то же устройство ), что — если бывает — скорее всего уничтожитобоих их. Включая ваш оригинал.(Подумайте, что произойдет, если у вас есть файловая система из двух -устройств с устройствами A1 и B1. Вы делаете копию A1 как A2. Теперь, когда ядро монтирует файловую систему, оно может использовать A1 и B1, как и ожидалось. Или он может использовать A2 и B1. И это может включаться при каждом монтировании, а это означает, что половина файловой системы может «потерять» все записи с момента последнего монтирования ).
К счастью, ядро заметило вашу попытку смонтировать клон и остановило вас.
Любой из:
tar
, btrfs-send
и т. д., чтобы создать копию в новой файловой системе с другим UUID файловой системы.