9
votes

Lister tous les lecteurs USB de Linux

Comment puis-je obtenir une liste de disques amovibles (branchés dans USB) sous Linux? Je vais bien avec l'utilisation de KDE, GNOME ou d'autres bibliothèques si cela faciliterait les choses.


10 commentaires

la question devrait migrer pour askubuntu


@Viswanathan: "Linux" n'est pas Ubuntu (ce qui est, bien sûr, pourquoi avoir un site askubuntu séparé du tout est stupide, mais je me digresse)


/ dev / Disk / BY-ID / USB - * Est-ce que tous les périphériques de stockage de masse USB sont actuellement connectés.


Est-ce une question de programmation? Parce que les réponses jusqu'à présent ne sont pas liées à la programmation.


Ce n'est pas une question spécifique à Ubuntu. Je cherchais une solution de bibliothèque de programmation, mais je peux utiliser quelque chose comme le module Python OS pour répertorier les appareils avec la solution Ignacio Vazquez-Abrams de toute façon.


Je suis également en train d'écrire un script Python qui doit trouver un lecteur USB particulier. Cela semble être un endroit parfaitement raisonnable pour demander et recevoir de l'aide à ce sujet.


Trouvé une question similaire ici Stackoverflow.com/questions / 5109879 / USB-Devices-Udev-and-D-B US


@ Ignaciovazquez-Abrams Vous devriez poster votre réponse comme une vraie réponse


utiliser lsusb. et demander des forums Linux, vous obtiendrez plus de techniques


@pistache: j'ai fait. Un modérateur l'a supprimé.


4 Réponses :


5
votes

Je pense qu'une bonne idée est d'utiliser Interface Udev De Python.

petit exemple (bien sûr dans votre cas, vous ajustez un peu de filtrage): xxx

C'est un bon moyen dans la plupart des cas que de nouveaux systèmes utilisent udev.


0 commentaires

-1
votes

Toute raison de ne pas analyser les résultats de lsusb code>? Je suis sûr qu'il y a des modules pour cela, mais encore une fois, facile, c'est parfois meilleur.

Je ne peux pas vous aider avec Python, dans Perl, je pourrais faire: P>

[
    [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"
    }
]


2 commentaires

Je ne suis pas bon avec Perl mais ... Je pense qu'une meilleure façon (généralement) est d'utiliser l'UDev ou un module USB pour Perl au lieu d'analyser les commandes ls .


Certainement à la fois Perl et Python ont des modules à cette fin, la sortie de lsusb est valide et obtient le travail effectué rapidement. Comme toujours, le niveau de rigueur employé est à l'auteur et à sa tâche.



2
votes

Après tout ce temps, la question a été déverrouillée à nouveau ...

À la fin, j'ai utilisé UDISKS via l'interface D-BUS comme indiqué ici .


0 commentaires

0
votes

En arrière, j'ai eu ce petit script (ce n'est pas le mien) mais cela m'a sûrement aidé beaucoup à mettre juste pour référence xxx


0 commentaires