переместить загрузочный раздел proxmox (или debian )на USB-накопитель, установленный на двух дисках NVME в zfs -рейд -1 на не -загрузочный устаревший биос

shopt -s nullglob

set -- "$WORK_DIR/$SRC_FILE_EXT"*

printf 'There are %d names that match "%s"\n' "$#" "$WORK_DIR/$SRC_FILE_EXT*"

То есть разверните шаблон, соответствующий интересующим вас именам, задав позиционные параметры. Специальная переменная $#будет содержать количество совпавших имен. Установите параметр оболочки nullglobв bash, чтобы шаблон не расширялся, если он вообще не совпадает.

Если вы хотите убедиться, что каталоги не совпадают, вы можете использовать простой цикл, который подсчитывает не -каталоги:

shopt -s nullglob

num=0
for name in "$WORK_DIR/$SRC_FILE_EXT"*; do
    [ ! -d "$name" ] && num=$(( num + 1 ))
done

printf 'There are %d non-directories with names that match "%s"\n' "$num" "$WORK_DIR/$SRC_FILE_EXT*"

Использованиеfind:

find "$WORK_DIR" -maxdepth 1 ! -type d -name "$SRC_FILE_EXT*" -exec echo x \; | wc -l

(предполагая, что ваш findзнает о не -стандартном -maxdepthпредикате ). Это вернет количество не -каталогов в $WORK_DIR, имена которых начинаются с $SRC_FILE_EXT.

num=$( find "$WORK_DIR" -maxdepth 1 ! -type d -name "$SRC_FILE_EXT*" -exec echo x \; | wc -l )

printf 'There are %d non-directories with names that match "%s" in "%s"\n' \
    "$num" "$SRC_FILE_EXT*" "$WORK_DIR"

Существует тонкое различие между использованием глобусов оболочки для сопоставления имен и использованием findв том, что findболее строго относится к сопоставлению типов файлов. Утилита findобнаружит символическую ссылку на файл или каталог не как файл или каталог, а как символическую ссылку, в то время как оболочка будет разыменовывать символическую ссылку и проверять то, на что она ссылается.

2
17.05.2021, 05:33
0 ответов

Теги

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