Можно только передать регулярное выражение как аргумент apt-get install
.
Можно сделать регулярное выражение, которое делает то, что Вы хотите, но это утомительно. Отрицание регулярного выражения может быть выражено регулярным выражением, но размер дополнения regex растет экспоненциально с размером оригинала в целом.
apt-get install '^mate(.?.?.?|.*([^v]|[^e]v|[^d]ev|[^-]dev))$'
Можно использовать шаблоны поиска Способности, чтобы генерировать список пакетов с полудостойным синтаксисом и передать получающийся список apt-get install
или aptitude install
.
aptitude search '^mate !-dev$'
Принятие Вас использует дистрибутив Linux с поддержкой udev, и у Вас есть корень/доступ администратора к нему затем, можно использовать правила udev включить определенные операции.
Если следующий пример будет добавлен к/etc/udev/rules.d/example.rules затем, то он запустит указанный скрипт, когда блочное устройство будет добавлено с указанными параметрами.
ACTION=="add", SUBSYSTEM=="block", ATTRS{manufacturer}=="HitachiGST", ATTRS{serial}=="31001206110000000000", RUN+="/a/script/to/run.sh"
То конкретное правило выполняется, когда мой жесткий диск USB вставляется и присоединяет к блокировке. Довольно легко настроить правила соответствовать определенному событию USB низкого уровня.
Я нашел UDEV Debian страницей Wiki и Пишущим сайтом Правил Udev, чтобы быть очень полезным в получении правильных правил для моей ситуации.
Как первоначальный ответ Вы могли прислушаться к изменениям в файле /proc/bus/input/devices
и проверьте на USB entries
. С этим можно постараться не опрашивать устройство. Или можно выполнить опрос цикла, когда устройство вставляется.
Вероятно, сценарий оболочки не будет то, с такой скоростью, как Вы хотите. Было бы лучше для использования другого языка сценария Python
или C/C++
.
http://libusb.sourceforge.net/doc/examples-code.html http://sourceforge.net/apps/trac/pyusb/