Как запустить скрипт при подключении устройства?

find folder* -name 'test' -exec mv {} {}/../.. \;

Объяснение

find folder* Поиски в любом ./folder* ( шаблоны шарика расширенный оболочкой)

-name 'test' для файлов с именем test.

-exec mv {} {}/../.. \; Перемещает их два уровня выше 1 глоток>. {} заменяется найденным именем. -exec опция должна быть завершена с завершенной точкой с запятой. Можно сделать пробный прогон путем добавления echo прежде mv.

1 глоток>, Почему два выравнивает? Если мы переместили папку в ее родительскую папку, we’d просят делать ее подпапкой ее текущей суперпапки, таким образом, это останется в текущем месте. Однако мы хотим переместить его для становления подпапкой родителя parent’s. Расширенная команда будет похожа mv folder1/js/test folder1/js/test/../.., который расширен до [1 112].

Выполнение Примечания

этой команды выдаст предупреждения как:

find: ‘folder1/js/test’: No such file or directory

, потому что it’s, пытающийся искать в той папке после , это было перемещено. Это может быть заставлено замолчать путем определения 2> /dev/null.

1
задан 14.04.2020, 09:12

1 ответ

  1. Проверьте атрибуты udev для целевого устройства (если вы его знаете). Пример:

    udevadm info -a -n /dev/ttyACM0
    

    Или отслеживайте udev события (затем подключите ваше устройство):

    udevadm monitor --environment --udev
    
  2. Используйте определенные атрибуты для соответствия целевому устройству и создания нового [ 115] файл правил в /etc/udev/rules.d/. Используйте ACTION=="add", чтобы соответствовать добавленному событию устройства, и RUN+="...", чтобы запустить необходимый скрипт. Пример

    ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth0", RUN+="/usr/bin/ethtool -s eth0 wol d"
    

Ссылки:

0
ответ дан 14.04.2020, 09:12

Теги

Похожие вопросы