What is a Linux command that lists only USB storage devices?

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 By: Kalmar


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/*
    if udevadm info --query=property --path=$device | grep -q ^ID_BUS=usb
        echo $device
Answered By: 111—

You can use lsblk.

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.

Answered By: vfbsilva

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"
Answered By: Regis Barbosa
lsblk --noheadings --nodeps --paths --raw --output NAME,RM,TRAN,TYPE | grep " 1 usb disk$" | cut --delimiter " " --fields 1

Example output:


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
Answered By: Peter Evselyev
Categories: Answers Tags: , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.