Я думаю, что Вы действительно хотите знать, "что является пакетами, которые требуют sqlite-3.3.6, но не будут довольны sqlite-3.4.z"... и единственным хорошим способом узнать это, должен попробовать его. Как:
echo | yum upgrade sqlite
Можно получить запросы полезной информации udev
(в системах, которые используют его - почти весь настольный тип Linux наверняка). Например, если Вы хотите знать, который присоединил диск, связан с /dev/sdb
, можно использовать:
udevadm info --query=property --name=sdb
Это покажет Вам список свойств того устройства, включая сериал (ID_SERIAL_SHORT). Имея ту информацию, можно посмотреть на вывод lsusb -v
и узнайте вещи как производитель и название продукта.
Более короткий путь, чтобы сделать это было бы
udevadm info --query=property --name=sdb | grep "\(MODEL_ID\|VENDOR_ID\)"
и посмотрите строку с соответствием $ID_VENDOR_ID:$ID_MODEL_ID
в намного более коротком выводе lsusb
.
Другая полезная опция udevadm monitor
. Используйте его, если Вы хотели бы, знают, какой узел устройства создается при присоединении устройства. Так первый показ
udevadm monitor --udev --subsystem-match=block
И затем подключите устройство. Вы будете видеть имена устройств обнаруженных блочных устройств (диски/разделы), распечатанные в конце каждой выходной строки.
Вот функция, можно вставить Ваш .bashrc
(или .zshrc
) :
listusbdisks () { [[ "x$1" == "x-v" ]] && shift && local VERBOSE=-v for dsk in ${@-/dev/sd?} do /sbin/udevadm info --query=path --name="$dsk" | grep --colour=auto -q usb || continue echo "===== device $dsk is:" ( eval $(/sbin/udevadm info --query=property --name="$dsk" | grep "\(MODEL\|VENDOR\)_ID") [ "$ID_VENDOR_ID:$ID_MODEL_ID" == ":" ] && echo "Unknown" || \ lsusb $VERBOSE -d "$ID_VENDOR_ID:$ID_MODEL_ID" ) grep -q "$dsk" /proc/mounts && echo "----- DEVICE IS MOUNTED ----" echo done }
Используйте его как это:
listusbdisks
- распознать все /dev/sdx
устройства;listusbdisks sdb
или listusbdisks /dev/sdb
или listusbdisks sdb sdc
- получить информацию об определенных устройствах только;listusbdisks -v [optional devices as above]
- показать подробные выводы lsusb
[Править]: Добавленный некоторая функциональность как запросы многих устройств, проверка монтируется и многословие управления lsusb
.
Нет никакого универсального ответа. На Linux самый простой путь состоит в том, чтобы, вероятно, просто разжечь дисковую утилиту гнома, и это покажет все обнаруженные диски, смонтированы ли они или нет. Из командной строки можно консультироваться с выводом blkid
или udevadm info --export-db
.
Относительно всего Unixes я не думаю, что это выполнимо.
Обычные внешние шины сегодня не используют фиксированную нумерацию для своих портов, как IDE сделал. Так, для единственных остающихся источников данных для отображения Вас нужно, названия производителя дисков, их порядковые номера или UIDs разделов.
Имена производителя не обязательно уникальны на данной машине (предположите подключение двух внешних дисков от того же ряда - они определят тождественно). Порядковые номера не "видимы с внешней стороны", как раздел UIDs.
Так, о единственном универсальном решении я могу думать, должен маркировать физические диски порядковым номером и использовать команду udevadm, данную в ответе rozcietrzewiacz, если UDEV доступен.
udev
. верный – Caleb 04.08.2011, 23:22lsusb
также дополнительная программа. Но оба чрезвычайно распространены. – rozcietrzewiacz 04.08.2011, 23:27dmesg
. Но это не будет полезно, если устройство будет уже включено и если существует больше устройств, включенных после первого. :) – Abhishek A 02.09.2011, 16:08