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 4,279 times
6
4 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"
}
0
lsblk --noheadings --nodeps --paths --raw --output NAME,RM,TRAN,TYPE | grep " 1 usb disk$" | cut --delimiter " " --fields 1
Example output:
/dev/sdd
/dev/sde
/dev/sdf
Basically, with grep
you filter removable USB disks. Some examples of unfiltered lsblk
output for various devices:
/dev/loop0 0 loop
/dev/sda 0 sata disk
SATA SSD/dev/sdb 0 sata disk
SATA HDD/dev/sdd 1 usb disk
USB flash drive/dev/sr0 1 sata rom
SATA DVD-RW
-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,697
-
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
lsblk -do name,tran | awk '$2=="usb"{print $1}'
– don_crissti Jul 17 '16 at 17:36