Wie liste ich alle über USB angeschlossenen Speichergeräte (USB-Sticks / externe Festplatten) über die Befehlszeile auf?

16

Ich möchte NUR Geräte auflisten, die über USB verbunden sind.

Das Problem ist, dass Ubuntu anscheinend alle USB-Sticks als austauschbar (in /sys/block/*/removable) ansieht, externe Festplatten jedoch nicht auf die gleiche Weise.

Dies ist etwas spezifischer als Wie erkennt man ein USB-Gerät?

user1556438
quelle

Antworten:

14

Wenn Sie nach den eingebauten Datenträgern suchen, eine einfache

df

listet sie zusammen mit allen anderen Datenträgern mit einigen nützlichen Informationen auf.

Jazz
quelle
2
Dies gibt aber alle Blockgeräte, nicht nur die über USB angeschlossenen.
Jeremy Kerr
8

Ich würde empfehlen, die udev-Eigenschaften der Geräte zu überprüfen, insbesondere die ID_BUSEigenschaft:

for device in /sys/block/*
do
    if udevadm info --query=property --path=$device | grep -q ^ID_BUS=usb
    then
        echo $device
    fi
done
Jeremy Kerr
quelle
Dadurch werden auch Geräte für meinen eingebauten Kartenleser ausgespuckt, auch wenn keine Karten eingelegt sind.
b_laoshi
@b_laoshi: Ja, diese werden weiterhin als Speichergeräte gemeldet, aber ohne Medien.
Jeremy Kerr
2

Meiner Ansicht nach

lsusb

Ich gebe dir, was du willst, zumindest wenn ich verstehe, was du fragst. (Natürlich werden alle USB-Geräte aufgelistet, nicht nur der Speicher.)

Kelley
quelle
2

Nur angeschlossene USB-Speichergeräte auflisten

Bearbeiten: Wenn ich etwas Zeit habe, besuche ich diesen Beitrag erneut, um nur USB-Geräte aufzulisten. Im Moment werden alle Geräte aufgelistet, in /mediadenen möglicherweise für einige Personen ausreichend ist.

Auflisten aller Geräte in /media

Alle anderen Antworten hier scheinen beim Herausfiltern von Nicht-USB-Speichergeräten oder Nicht-USB-Speichergeräten zu scheitern. Hier ist ein Befehl, der nur über USB angeschlossene Speichergeräte auflisten soll. Eine Ausnahme, die wahrscheinlich für niemanden von Belang ist, ist, dass hiermit keine angeschlossenen optischen USB-Laufwerke mit eingelegten Medien angezeigt werden.

Voraussetzungen dafür zu arbeiten

  • USB-Geräte müssen gemountet sein. Ubuntu-Desktop-Betriebssysteme werden normalerweise standardmäßig automatisch eingebunden
  • Medien müssen im /mediaVerzeichnis bereitgestellt werden. Wenn Ihr USB-Gerät in fstab für die Bereitstellung an einer anderen Stelle konfiguriert ist, müssen Sie die folgenden Befehle optimieren

Auflisten von USB-Speichergeräten
In meinem speziellen Fall für ein Skript, das ich schreibe, liste ich einzelne Partitionen auf. Hier sind zwei Befehle. Einer listet die Partitionen der angeschlossenen Geräte auf und der andere listet einfach die Geräte auf.

  • Auflisten von Partitionen:
    lsblk | grep /media | grep -oP "sd[a-z][0-9]?" | awk '{print "/dev/"$1}'
    Beispielausgabe:

    /dev/sdd1
    /dev/sdi1
    /dev/sdj1
    /dev/sdj2
    
  • Auflisten von Geräten:
    lsblk | grep /media | grep -oP "sd[a-z]" | awk '{print "/dev/"$1}' | sort | uniq
    Beispielausgabe:

    /dev/sdd
    /dev/sdi
    /dev/sdj
    
b_laoshi
quelle
Was ist mit Partitionen interner Datenträger, die eingebunden werden /media?
Muru
Dies würde ein Problem darstellen, das aber die meisten Benutzer wahrscheinlich nicht betrifft. Ich werde darüber nachdenken und später aktualisieren.
b_laoshi