Depois de conectar um dispositivo USB, você pode saber o que foi instalado, basta olhar para este caminho:
$ ls -l /dev/disk/by-id/usb*
Exemplo
$ ls -l /dev/disk/by-id/usb*
lrwxrwxrwx. 1 root root 9 Mar 12 01:01 /dev/disk/by-id/usb-JMTek_USBDrive-0:0 -> ../../sdb
lrwxrwxrwx. 1 root root 10 Mar 12 01:01 /dev/disk/by-id/usb-JMTek_USBDrive-0:0-part1 -> ../../sdb1
Com as informações acima, seu script pode simplesmente olhar para essas entradas usando algo como readlink
:
$ readlink -f /dev/disk/by-id/usb-JMTek_USBDrive-0:0*
/dev/sdb
/dev/sdb1
E, em seguida, usando o comando mount
, caminhe para trás para descobrir em qual diretório o dispositivo foi montado automaticamente:
$ mount | grep '/dev/sdb\b'
$ mount | grep '/dev/sdb1\b'
/dev/sdb1 on /run/media/saml/HOLA type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0077,codepage=437,iocharset=ascii,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)
Isso pode ser expandido para um liner como este:
$ readlink -f /dev/disk/by-id/usb-JMTek_USBDrive-0:0* | \
while read dev;do mount | grep "$dev\b" | awk '{print $3}';done
/run/media/saml/HOLA
Obtendo o ID de um dispositivo
Você pode analisar isso da saída de /dev/disk/by-id/usb*
, assim:
$ ls /dev/disk/by-id/usb* | sed 's/.*usb-\(.*\)-[0-9]:.*//'
JMTek_USBDrive
JMTek_USBDrive
A propósito, esta informação é uma concatenação das descrições do fabricante + produto do USB.
$ usb-devices
...
T: Bus=02 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#= 10 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=058f ProdID=9380 Rev=01.00
S: Manufacturer=JMTek
S: Product=USBDrive
C: #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
...
Você também pode acessá-lo assim que tiver estabelecido qual dispositivo ( /dev/sd*
) o dispositivo USB está usando, por meio do UDEV:
$ udevadm info --query=all --name=sdb | grep -E "MODEL=|VENDOR=|ID_SERIAL"
E: ID_MODEL=USBDrive
E: ID_SERIAL=JMTek_USBDrive-0:0
E: ID_VENDOR=JMTek