Невозможно создать локальный том

Чтобы сделать это буквально, вам, вероятно, придется прибегнуть к eval:

function subst_all_filenames() {
    subst="$1"
    for filename in *
    do
        eval 'echo ${filename'"$subst"'}'
    done
}

subst_all_filenames "^^"
subst_all_filenames ",,"
subst_all_filenames ""

В качестве альтернативы можно поддерживать только известный список замен:

function subst_all_filenames() {
    case "$1" in
      ^^) for filename in *; do echo "${filename^^}"; done ;;
     ,,) for filename in *; do echo "${filename,,}"; done ;;
       *) printf "%s\n" * ;;
    esac
}

Иногда такая вспомогательная функция вообще не нужна. Вполне нормально иметь такие циклы повсюду в сценарии оболочки.

0
26.05.2021, 15:05
1 ответ

Ваша команда lvreduceбыла бы правильной , если бы можно было в строке -сжать вашу файловую систему.

К сожалению, файловые системы ext4/ext3/ext2 могут быть расширены, но не сокращены только в строке -.

Протестировано на Debian, но даже примечания к выпуску самого последнего e2fsprogsисходного пакета не указывают на то, что это вообще изменилось.

# lvcreate -L 8g -n lvtest vgsys
# mkfs.ext4 /dev/vgsys/lvtest
# mount /dev/vgsys/lvtest /mnt
# lvreduce --resizefs -L 4G /dev/vgsys/lvtest
Do you want to unmount "/mnt" ? [Y|n] n
fsadm: Cannot proceed with mounted filesystem "/mnt".
  /sbin/fsadm failed: 1
  Filesystem resize failed.

Этот ответ описывает процедуру, которая позволяет избежать перезагрузки, но все же требует перехода к временной корневой файловой системе на основеtmpfs-для сжатия реальной корневой файловой системы.

2
28.07.2021, 11:29

Теги

Похожие вопросы