Как сделать так, чтобы самошифрующийся раздел NVMe SSD отображался в /dev после его разблокировки?

-name pattern
              Base of file name (the path with the leading directories
              removed) matches shell pattern pattern.  Because the leading
              directories are removed, the file names considered for a match
              with -name will never include a slash, so `-name a/b' will
              never match anything (you probably need to use -path instead).
              A warning is issued if you try to do this, unless the
              environment variable POSIXLY_CORRECT is set.  The
              metacharacters (`*', `?', and `[]') match a `.' at the start
              of the base name (this is a change in findutils-4.2.2; see
              section STANDARDS CONFORMANCE below).  To ignore a directory
              and the files under it, use -prune; see an example in the
              description of -path.  Braces are not recognised as being
              special, despite the fact that some shells including Bash
              imbue braces with a special meaning in shell patterns.  The
              filename matching is performed with the use of the fnmatch(3)
              library function.  Don't forget to enclose the pattern in
              quotes in order to protect it from expansion by the shell.

Он использует шаблоны оболочки, а не регулярное выражение.

Источник:find(1)


Из руководства GNU под имя:

Here are ways to search for files whose name matches a certain pattern. See Shell Pattern Matching, for a description of the pattern arguments to these tests.

2.1.4 Сопоставление шаблона оболочки

find и locate могут сравнивать имена файлов или части имен файлов с шаблонами оболочки. Шаблон оболочки — это строка, которая может содержать следующие специальные символы, известные как подстановочные знаки или метасимволы.

Шаблоны, содержащие метасимволы, необходимо заключать в кавычки, чтобы интерпретатор не смог расширить их самостоятельно. Двойные и одинарные кавычки работают; то же самое можно сказать и об экранировании с помощью обратной косой черты.

  • *
    Соответствует любому нулю или более символов.
  • ?
    Соответствует любому одному символу.
  • [string]
    Соответствует ровно одному символу, который является членом строки string. Это называется классом символов. В качестве сокращения строка может содержать диапазоны, состоящие из двух символов с дефисом между ними. Например, класс «[a -z0 -9 _]» соответствует строчной букве, цифре или знаку подчеркивания. Вы можете отменить класс, поставив «!» или «^» сразу после открывающей скобки. Таким образом, «[^A -Z@]» соответствует любому символу, кроме прописной буквы или знака at.
  • \
    Удаляет особое значение символа, следующего за ним. Это работает даже в классах персонажей.
    В тестах поиска, которые выполняют сопоставление шаблона оболочки («-имя», «-полное имя» и т. д. ), подстановочные знаки в шаблоне будут соответствовать «.» в начале имени файла. Это также относится к местонахождению. Таким образом, «найти -имя» *macs» будет соответствовать файлу с именем.emacs, как и «найти» *macs».

Символы косой черты не имеют особого значения в сопоставлении шаблонов оболочки, которые выполняют поиск и поиск, в отличие от оболочки,в которых подстановочные знаки не соответствуют им. Следовательно, шаблон «foo bar» может соответствовать имени файла «foo3/bar», а шаблон «./sr sc» может соответствовать имени файла «./src/misc».

Если вы хотите найти некоторые файлы с помощью команды «locate», но вам не нужен полный список, вы можете использовать параметр «--limit», чтобы увидеть только небольшое количество результатов, или «--count», чтобы отображалось только общее количество совпадений.


Чтобы ответить на ваш вопрос:

find. -name "*.sw?" -type f
0
15.04.2021, 17:12
2 ответа

У меня нет -самошифрующихся дисков NVMe, на которых я мог бы протестировать эти команды. Но в зависимости от того, как можно повторно сканировать разделы SAN LUN, по крайней мере один из этих способов может работать :

.
echo 1 > /sys/class/nvme/nvme0/rescan_controller

или

partprobe /dev/nvme0n1
2
28.04.2021, 22:52
sudo blockdev --rereadpt -v /dev/nvme0n1

Я также использую этот скрипт,

#! /bin/bash

SCSI=/sys/class/scsi_host
test ! -d "$SCSI" && echo "Error: cannot find the $SCSI directory." && exit 1
cd "$SCSI" || exit 1

for i in *; do
    echo -n "Scanning $i..."
    echo "- - -" > $i/scan && echo " done."
done

echo "Finished. Consult with 'dmesg' for details."

Должен запускаться под root/sudo.

0
28.04.2021, 22:52

Теги

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