Linux + как захватить дисковое устройство ОС [закрыто]

-1
25.11.2018, 17:31
2 ответа
  1. Я нашел самую простую команду для определения диска с операционной системой быть df /. К сожалению, он производит много вывода (, под которым я подразумеваю строку заголовка и множество полей ), так что вам все равно нужно будет сделать некоторую фильтрацию чтобы получить только имя устройства.
  2. Вы правы; ваша команда слишком длинная и несколько неуклюжая. awk— очень мощная программа; тебе редко нужно объединить его с grepи/или sed, и иметь несколько команд awkв одном конвейере почти никогда не требуется. Ваш пайплайн можно заменить на

    sfdisk -l | awk '/Linux/ && $2 == "*" { gsub("[0-9]", "", $1); split($1, a, "/"); print a[3]; }'
    Хорошо, это всего на дюжину символов короче, но это одна команда вместо пяти.

    П.С. sed 's/[0-9]*//g'— немного опасная команда. Из-за g, на самом деле не имеет смысла иметь *также. Чтобы понять, что я имею в виду, попробуйте sed 's/[0-9]*/X/g'с различными входными данными, и сравните с s/[0-9]/X/gи s/[0-9]\+/X/g.

  3. OS_DISK=` command `можно изменить к OS_DISK=$(command), вторая форма (со скобками )предпочтительнее.
1
28.01.2020, 05:07

Команды fdiskи sfdiskвключены в пакет util-linux. В том же пакете есть также команда findmnt, которую вы можете использовать, как показано ниже:

findmnt / -no SOURCE
/dev/sda6
2
28.01.2020, 05:07

Теги

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