USB経由で接続されているデバイスのみをリストしたい。
問題は、Ubuntuがすべてのサムドライブをリムーバブル(/sys/block/*/removable
)として認識しているように見えるが、外付けハードドライブが同じように見えないことです。
これは SBデバイスの検出方法 よりも少し具体的です
マウントされたディスクを探している場合は、
df
他のすべてのディスクとともにいくつかの有用な情報とともにそれらをリストします。
デバイスのudevプロパティ、特にID_BUS
プロパティを確認することをお勧めします。
for device in /sys/block/*
do
if udevadm info --query=property --path=$device | grep -q ^ID_BUS=usb
then
echo $device
fi
done
おもう
lsusb
少なくともあなたが求めていることを理解していれば、あなたが望むものをあなたに与えるでしょう。 (もちろん、ストレージだけでなく、すべてのUSBデバイスをリストします。)
編集:時間があれば、この投稿を再訪して、USBデバイスのみをリストするようにします。現時点では、/media
にマウントされているすべてのデバイスが一覧表示されます。これは一部の人にとっては十分かもしれません。
/media
にマウントされているすべてのデバイスのリストここにある他のすべての回答は、非USBストレージデバイスまたは非ストレージUSBデバイスのいずれかを除外することに失敗したようです。 USB経由で接続されたストレージデバイスのみを一覧表示するコマンドを次に示します。 1つの例外は、誰にとっても重要ではない可能性がありますが、これは、マウントされたメディアを持つ接続されたUSB光学ドライブを表示しません。
これが機能するための要件
/media
ディレクトリにマウントする必要があります。 USBデバイスがfstabで別の場所にマウントするように構成されている場合、次のコマンドを微調整する必要があります。SBストレージデバイスの一覧表示
私が書いているスクリプトの特定のケースでは、個々のパーティションをリストしています。以下に2つのコマンドを示します。 1つは接続されたデバイスのパーティションをリストし、もう1つは単にデバイスをリストします。
パーティションのリスト:lsblk | grep /media | grep -oP "sd[a-z][0-9]?" | awk '{print "/dev/"$1}'
出力例:
/dev/sdd1
/dev/sdi1
/dev/sdj1
/dev/sdj2
デバイスのリスト:lsblk | grep /media | grep -oP "sd[a-z]" | awk '{print "/dev/"$1}' | sort | uniq
出力例:
/dev/sdd
/dev/sdi
/dev/sdj