私のコンピュータに接続されているUSBストレージデバイスだけをリストしたいと思います。これはSCSIディスクなので、lsscsi
USBドライブとコンピュータのハードドライブとCDドライブを一覧表示するコマンドを使用しました。 USB以外のメモリストレージデバイスを無視する方法はありますか?私もそれを試しましたが、lsusb
これにはキーボード、マウス、その他の非保存デバイスが含まれます。
答え1
この回答接続されているすべてのブロックデバイスのリストを確認して繰り返し、udevadmin
それぞれのID_BUS
。
で接続されているすべてのブロックデバイスを表示できます/sys/block
。 USBストレージデバイスであることを示すリンクされた回答のbashスクリプトは次のとおりです。
for device in /sys/block/*
do
if udevadm info --query=property --path=$device | grep -q ^ID_BUS=usb
then
echo $device
fi
done
答え2
ちょうど関数を書いた。
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"
}
答え3
lsblk --noheadings --nodeps --paths --raw --output NAME,RM,TRAN,TYPE | grep " 1 usb disk$" | cut --delimiter " " --fields 1
出力例:
/dev/sdd
/dev/sde
/dev/sdf
デフォルトでは、grep
リムーバブルUSBディスクをフィルタリングできます。lsblk
さまざまなデバイスでフィルタリングされていない出力のいくつかの例:
/dev/loop0 0 loop
/dev/sda 0 sata disk
SATAソリッドステートドライブ/dev/sdb 0 sata disk
SATAハードドライブ/dev/sdd 1 usb disk
USBフラッシュドライブ/dev/sr0 1 sata rom
SATA DVD-RW
答え4
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
通常、USBデバイスはsdbに配置されているため、lsblk sdbはすべてのUSBデバイスを提供する必要があります。