Я хотел бы перечислить ТОЛЬКО устройства, подключенные через USB.
Проблема в том, что Ubuntu, похоже, видит все флэш-накопители как съемные (в /sys/block/*/removable
), но не видит внешние жесткие диски одинаково.
Это немного более конкретно, чем Как определить USB-устройство?
Я думаю,
lsusb
даст вам то, что вы хотите, по крайней мере, если я пойму, что вы спрашиваете. (Конечно, в нем перечислены все USB-устройства, а не только хранилище.)
Править: Когда у меня будет некоторое время, я пересмотрю это сообщение, чтобы заставить его перечислить только USB-устройства. На данный момент это перечисляет все устройства, смонтированные в /media
который может быть достаточно хорошим для некоторых людей.
/media
Все другие ответы здесь, кажется, перестали работать в отфильтровывании или не устройства хранения USB или USB-устройства неустройства хранения данных. Вот команда, которая должна перечислить только устройства хранения, присоединенные через USB. Одно исключение, которое вероятно не иметь значение для любого, - то, что это не отобразится, подключил оптические диски USB со смонтированными медиа.
Требования для этого для работы
/media
каталог. Если бы Ваше USB-устройство настроено в fstab для монтирования где-то в другом месте, необходимо было бы настроить следующие командыСписок устройств хранения USB
В моем особом случае для сценария я пишу, я перечисляю отдельные разделы. Вот две команды. Каждый перечислит разделы подключенных устройств, и другой просто перечислит устройства.
Список разделов:
lsblk | grep /media | grep -oP "sd[a-z][0-9]?" | awk '{print "/dev/"$1}'
Демонстрационный вывод:
/dev/sdd1
/dev/sdi1
/dev/sdj1
/dev/sdj2
Список устройств:
lsblk | grep /media | grep -oP "sd[a-z]" | awk '{print "/dev/"$1}' | sort | uniq
Демонстрационный вывод:
/dev/sdd
/dev/sdi
/dev/sdj
Если вы ищете смонтированные диски, простой
df
перечислит их вместе со всеми вашими другими дисками вместе с некоторой полезной информацией.
Я бы порекомендовал проверить свойства udev устройств, в частности свойство ID_BUS
:
for device in /sys/block/*
do
if udevadm info --query=property --path=$device | grep -q ^ID_BUS=usb
then
echo $device
fi
done
sudo lshw -class disk -short
Список всех устройств и их удобочитаемые имена.