I would like to list only the USB storage devices connected to my computer. Since these are SCSI disks, I used the command lsscsi, which lists the USB drives as well as my computer's hard drive and CD drive. Is there a way to ignore the memory storage that's not a USB? I have also tried lsusb, but this includes my keyboard, mouse, and other non-storage devices.
Asked
Active
Viewed 3,816 times
5
-
So "I would like to list only the USB devices connected to my computer." is not what you want? Do you want to list only the USB __storage__ devices on your computer? – 111--- Jul 08 '15 at 20:04
-
Yes, I want just the storage devices. I have edited my question. Thanks! – Kalmar Jul 08 '15 at 20:06
-
1[`lsblk -do name,tran | awk '$2=="usb"{print $1}'`](http://unix.stackexchange.com/a/225105) – don_crissti Jul 17 '16 at 17:36
-
@don_crissti well that's a little gem hidden away in the comments. Any reason why you didn't provide it as an answer? I don't understand StackExchance that well so there could be a good reason. – whossname Sep 24 '21 at 03:09
-
1@whossname - well, my comment is actually a link... ;) – don_crissti Sep 25 '21 at 11:12
3 Answers
8
This answer checks the list of all attached block devices and iterates over them with udevadmin to check their respective ID_BUS.
You can see all attached block devices in /sys/block. Here is the bash script from the linked answer that should let you know if it is a USB storage device:
for device in /sys/block/*
do
if udevadm info --query=property --path=$device | grep -q ^ID_BUS=usb
then
echo $device
fi
done
1
I just wrote a function:
dmu() {
# Criação : 2019-07-24 RBR.
local disks=`lsblk -o name,tran | awk '$2=="usb"{print $1}' | tr "\n" " " | sed -E "s/^ +//g;s/ +$//g"`
local mask=`sed -E "s/ /\([\\\\t ]|[0-9]\)+|/g;s/$/\([\\\\t ]|[0-9]\)+/g" <<< ${disks}`
lsblk -f | sed -n "1p"
lsblk -f | grep -E "$mask"
}
Regis Barbosa
- 11
- 1
- 3
-1
You can use lsblk.
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465,8G 0 disk
├─sda1 8:1 0 285M 0 part /boot
├─sda2 8:2 0 1,9G 0 part [SWAP]
├─sda3 8:3 0 74,5G 0 part /
└─sda4 8:4 0 389,1G 0 part /home
sr0 11:0 1 1024M 0 rom
Usualy usb devices are on sdb so lsblk sdb should give all usb devices.
vfbsilva
- 3,657
- 3
- 28
- 42
-
I think this might work. The only thing is that SCSI disks are added in the order that they're mounted and so I'd just have to assume that my hard drive and DVD drive were only sda. – Kalmar Jul 08 '15 at 21:02