Как динамически найти путь к только что подключенному USB-накопителю?

Как динамически найти путь к только что подключенному USB-накопителю?

Мне нужен сторонний скрипт или изменение настроек, которое запускает второй или основной скрипт, который выполняет фактическую работу. Мне не нужно делать это только для моего компьютера. Поэтому это должно работать на любом компьютере Linux.

Мне нужно знать путь (и, следовательно, содержимое) свежесмонтированного USB, чтобы я мог запустить скрипт, который использует данные на USB, для которых мне нужен путь. Я читал кое-что об udev, но они были недостаточно пояснительными. Эта команда:

ACTION=="add", ATTRS{idVendor}=="abcd", ATTRS{idProduct}=="1234", RUN+="/home/bibi/bin/xyz.sh

настроит USB на запуск скрипта каждый раз, когда к нему монтируется любое устройство. Но как узнать путь к USB-накопителю? (например /home/???)

Спасибо заранее. Извините, если данных недостаточно или я что-то пропустил

решение1

Самый простой способ — использоватьUUID. Каждый раздел имеет уникальный адрес, который вы можете использовать в своих скриптах.

ls -l /dev/disk/by-uuid

Эта команда показывает UUID для каждого диска, который в данный момент смонтирован как символическая ссылка на раздел (на USB-накопителе может быть более одного раздела)

Эти коды генерируются случайным образом и обладают достаточной энтропией, чтобы они вряд ли когда-либо столкнулись, за исключением раздела FAT32 (в котором есть только строка из восьми шестнадцатеричных цифр, поэтому 8^16 = 281 474 976 710 656 вариантов)

Возможно, вам также захочется ознакомиться с командами blkidи findfs.

Связанный контент