USB のブロックデバイス (USB メモリや HDD)を列挙する方法 (Part2)
USB のブロックデバイス (USB メモリや HDD)を列挙する方法 で書いたのとは別の方法で、USB のブロックデバイスを列挙する。
方法
ls /dev/disk/by-id/usb* -1 | xargs readlink -f | grep -E '[a-z]+$'
解説
/dev/disk/by-id/usb*
を実行すると、USB のブロックデバイス一覧とその実デバイスへのシンボリックリンクを取得できる。
$ ls /dev/disk/by-id/usb* -l
lrwxrwxrwx 1 root root 9 12月 27 21:28 /dev/disk/by-id/usb-BUFFALO_USB_Flash_Disk_xxxxxxxxx-0:0 -> ../../sdb
lrwxrwxrwx 1 root root 10 12月 27 21:28 /dev/disk/by-id/usb-BUFFALO_USB_Flash_Disk_xxxxxxxxx-0:0-part1 -> ../../sdb1
readlink -f
により、シンボリックリンクの実体を取得できるので、以下で USB のブロックデバイスの実体のリストを取得できるが、
$ ls /dev/disk/by-id/usb* -1 | xargs readlink -f
/dev/sdb
/dev/sdb1
/dev/sdb1
などパーティションに対するデバイスファイルも表示されるので、grep で正規表現を使ってフィルタリングする。
$ ls /dev/disk/by-id/usb* -1 | xargs readlink -f | grep -E '[a-z]+$'
/dev/sdb