Eu criei um para o comando lsblk
. Ele usa as opções de MOUNTPOINT e HOTPLUG para ajudar na identificação. HOTPLUG retorna um 1 se a unidade for removível como uma unidade USB. As unidades do tipo sr0 são removíveis / hotplug, mas são unidades de CD / DVD. E eu também paro os dispositivos de loop, já que eles mostram que são removíveis / hotplug também.
O comando que eu criei é o seguinte:
lsblk -o NAME,HOTPLUG,MOUNTPOINT | grep -w 1 | grep -vE "sr|loop" | awk '{print $3}'
O que pode produzir os seguintes resultados, como eu tenho uma unidade USB.
terrance@terrance-ubuntu:~$ lsblk -o NAME,HOTPLUG,MOUNTPOINT | grep -w 1 | grep -vE "sr|loop" | awk '{print $3}'
/media/terrance/E627-3C44
Qual é o ponto de montagem exato da minha unidade USB conectada.
NOTA: Parece que o Ubuntu 14.04 pode não usar as mesmas opções para lsblk
, então você pode usar o comando com RM
em vez de HOTPLUG
:
lsblk -o NAME,RM,MOUNTPOINT | grep -w 1 | grep -vE "sr|loop" | awk '{print $3}'
Ou , você pode usar o tipo TRAN
, testei em 16.04, que é device transport type
. Dá uma saída diferente que pode ser mais fácil de criar scripts.
lsblk -o NAME,TRAN,MOUNTPOINT
Que produz uma saída assim:
terrance@terrance-ubuntu:~$ lsblk -o NAME,TRAN,MOUNTPOINT
NAME TRAN MOUNTPOINT
loop1 /snap/canonical-livepatch/17
sdb usb
└─sdb1 /media/terrance/E627-3C44
loop4 /snap/core/1441
sr0 sata
loop2 /snap/core/1287
loop0 /snap/canonical-livepatch/21
sda sata
├─sda2
├─sda5 [SWAP]
└─sda1 /
loop3 /snap/core/1337
Como o MOINTPOINT está listado na próxima linha após o usb, usaremos grep -A 1
para pegar a próxima linha e usar awk '{print $2}'
para imprimir a segunda coluna de saída nessa linha:
terrance@terrance-ubuntu:~$ lsblk -o NAME,TRAN,MOUNTPOINT | grep -A 1 -w usb | grep -v usb | awk '{print $2}'
/media/terrance/E627-3C44
Espero que isso ajude!