Мне нужен список всех имен устройств (не USB или CD-ROM) в следующей форме: DRIVES = 'sda sdb', чтобы я мог их пропустить в сценарии bash.
Идеальное решение не нужно было устанавливать специальную утилиту и использовать / sys | / proc | / dev из файловой системы.
Это работает для меня:
echo DRIVES=\'`cd /dev; ls sd?; cd`\'
Он просто переходит в каталог / dev и выводит все с помощью sd и еще одного символа. После этого он возвращается домой.
Используйте lsblk:
$ lsblk -o NAME -nl
sda
sda1
sda2
sda4
sda5
sda6
sdb
sdb1
sdb2
sdb5
sdb6
sr0
Это будет включать все, что стоит включать. Вы можете использовать параметр -I вместе с lsblk для фильтрации.