9

Linux で (USB に接続された) リムーバブル ドライブのリストを取得するにはどうすればよいですか? KDE、GNOME、またはその他の DE ライブラリを使用しても問題ありません。

4

5 に答える 5

2

何度も繰り返した結果、質問が再びアンロックされました…</p>

最終的に、ここに示されているように、D-Bus インターフェイス経由で UDisk を使用しました。

于 2012-12-07T22:56:29.103 に答える
0

これは私が bash から使用するものです: lsblk --pairs --nodeps | grep 'RM="1"'

出力例: NAME="sda" MAJ:MIN="8:0" RM="1" SIZE="59.5G" RO="0" TYPE="disk" MOUNTPOINT=""

パーティションではなく、デバイスをリストしていることに注意してください。パーティションも表示したい場合は、lsblk --pairs | grep 'RM="1"'

于 2022-01-06T01:41:24.940 に答える
-1

結果を解析しない理由はありlsusbますか?このためのモジュールがあると確信していますが、繰り返しになりますが、簡単な方が最適な場合もあります。

私はPythonであなたを助けることはできません、Perlで私はするかもしれません:

#!/usr/bin/env perl

use strict;
use warnings;

my @data;
foreach (`lsusb`) {
  next unless /Bus (\S+) Device (\S+): ID (\S+) (.*)/;
  push @data, { bus => $1, device => $2, id => $3, info => $4 };
}

use Data::Printer;
p @data;

これは、私のコンピューターでは、

[
    [0] {
        bus   005,
        device   001,
        id   "1d6b:0001",
        info   "Linux Foundation 1.1 root hub"
    },
    [1] {
        bus   004,
        device   001,
        id   "1d6b:0001",
        info   "Linux Foundation 1.1 root hub"
    },
    [2] {
        bus   003,
        device   001,
        id   "1d6b:0001",
        info   "Linux Foundation 1.1 root hub"
    },
    [3] {
        bus   002,
        device   001,
        id   "1d6b:0001",
        info   "Linux Foundation 1.1 root hub"
    },
    [4] {
        bus   001,
        device   003,
        id   "0bda:0158",
        info   "Realtek Semiconductor Corp. USB 2.0 multicard reader"
    },
    [5] {
        bus   001,
        device   002,
        id   "064e:a129",
        info   "Suyin Corp. "
    },
    [6] {
        bus   001,
        device   001,
        id   "1d6b:0002",
        info   "Linux Foundation 2.0 root hub"
    }
]

Data::Printerとそのp機能は、検査目的でのみ人間に優しいオブジェクトダンプであることに注意してください。

于 2012-11-22T00:37:36.427 に答える