6

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.

clk
  • 2,146
Kalmar
  • 63

4 Answers4

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
111---
  • 4,516
  • 3
  • 30
  • 52
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