Хочу странного: определить концептуальный тип накопителя, подключенного по USB (флешка, карта памяти, внешний жёсткий диск, внешний ssd, оптический привод). Уповал на ROTA в lsblk для разделения внешних жёстких и флешек, но он, подлец, рапортует «1» для всех USB устройств, и т.о. работает только для локальных SATA/PATA приводов. Можно в lsblk задетектить rom через тип устройства, и т.о. определить оптический привод, но неизвестно, насколько надёжно, но пока пусть будет так. Остальные устройства друг от друга ничем вроде бы не отличаются. Идея угадывать (читай: регекспами) по названию девайса мне кажется изначально порочной. Есть какой-нибудь способ это сделать по-человечески (и без привилегий рута)?
UPD: отличать оптику/hdd/ssd можно через специфические записи в выводе udevadm info. С флешками и картами памяти в кард-ридерах сложнее. Кроме того, lsblk помечает внешние usb диски как несъёмные, так что нужно ориентироваться на HOTPLUG.