web-dev-qa-db-ja.com

コマンドラインからUSB経由で接続されているすべてのストレージデバイス(サムドライブ/外部ハードドライブ)を一覧表示するにはどうすればよいですか?

USB経由で接続されているデバイスのみをリストしたい。

問題は、Ubuntuがすべてのサムドライブをリムーバブル(/sys/block/*/removable)として認識しているように見えるが、外付けハードドライブが同じように見えないことです。

これは SBデバイスの検出方法 よりも少し具体的です

14
user1556438

マウントされたディスクを探している場合は、

df

他のすべてのディスクとともにいくつかの有用な情報とともにそれらをリストします。

13
Jazz

デバイスの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
7
Jeremy Kerr

おもう

lsusb

少なくともあなたが求めていることを理解していれば、あなたが望むものをあなたに与えるでしょう。 (もちろん、ストレージだけでなく、すべてのUSBデバイスをリストします。)

2
Kelley

接続されたUSBストレージデバイスのみのリスト

編集:時間があれば、この投稿を再訪して、USBデバイスのみをリストするようにします。現時点では、/mediaにマウントされているすべてのデバイスが一覧表示されます。これは一部の人にとっては十分かもしれません。

/mediaにマウントされているすべてのデバイスのリスト

ここにある他のすべての回答は、非USBストレージデバイスまたは非ストレージUSBデバイスのいずれかを除外することに失敗したようです。 USB経由で接続されたストレージデバイスのみを一覧表示するコマンドを次に示します。 1つの例外は、誰にとっても重要ではない可能性がありますが、これは、マウントされたメディアを持つ接続されたUSB光学ドライブを表示しません。

これが機能するための要件

  • USBデバイスをマウントする必要があります。 UbuntuデスクトップOSは通常、デフォルトで自動マウントされます
  • メディアは/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
    
2
b_laoshi