¿Cómo enumero todos los dispositivos de almacenamiento (unidades de memoria USB / discos duros externos) que están conectados a través de USB, desde la línea de comandos?

18

Me gustaría enumerar SOLO los dispositivos conectados a través de USB.

El problema es que Ubuntu parece ver todas las unidades flash como extraíbles (in /sys/block/*/removable), pero no ve los discos duros externos de la misma manera.

Esto es un poco más específico que ¿Cómo detectar un dispositivo USB?

usuario1556438
fuente

Respuestas:

14

Si está buscando los discos montados, un simple

df

los enumerará junto con todos sus otros discos junto con información útil.

Jazz
fuente
2
pero esto le da a todos los dispositivos de bloque, no solo a aquellos conectados mediante USB.
Jeremy Kerr
9

Recomiendo verificar las propiedades udev de los dispositivos, específicamente la ID_BUSpropiedad:

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
fuente
Esto escupe dispositivos para mi lector de tarjetas incorporado también cuando no hay tarjetas insertadas.
b_laoshi
@b_laoshi: sí, todavía se informarán como dispositivos de almacenamiento, pero sin medios presentes.
Jeremy Kerr
2

Yo creo que

lsusb

te dará lo que quieres, al menos si entiendo lo que estás preguntando. (Por supuesto, enumera todos los dispositivos usb, no solo el almacenamiento).

Kelley
fuente
2

Solamente la lista de adjuntos de almacenamiento USB dispositivos

Editar: cuando tenga algo de tiempo, volveré a visitar esta publicación para que solo incluya dispositivos USB. Por ahora, enumera todos los dispositivos montados en los /mediaque puede ser lo suficientemente bueno para algunas personas.

Listado de todos los dispositivos montados en /media

Todas las otras respuestas aquí parecen fallar al filtrar dispositivos de almacenamiento que no son USB o dispositivos que no son de almacenamiento USB. Aquí hay un comando que debe enumerar solo los dispositivos de almacenamiento conectados a través de USB. Una excepción, que probablemente no le importe a nadie, es que esto no mostrará unidades ópticas USB conectadas con medios montados.

Requisitos para que esto funcione

  • Los dispositivos USB deben estar montados. Los sistemas operativos de escritorio de Ubuntu generalmente se montan automáticamente de forma predeterminada
  • Los medios deben estar montados en el /mediadirectorio. Si su dispositivo USB está configurado en fstab para montarse en otro lugar, deberá modificar los siguientes comandos

Listado de dispositivos de almacenamiento USB
En mi caso particular para un script que estoy escribiendo, enumero particiones individuales. Aquí hay dos comandos. Uno enumerará las particiones de los dispositivos conectados, y el otro simplemente enumerará los dispositivos.

  • Listado de particiones:
    lsblk | grep /media | grep -oP "sd[a-z][0-9]?" | awk '{print "/dev/"$1}'
    Salida de muestra:

    /dev/sdd1
    /dev/sdi1
    /dev/sdj1
    /dev/sdj2
    
  • Listado de dispositivos:
    lsblk | grep /media | grep -oP "sd[a-z]" | awk '{print "/dev/"$1}' | sort | uniq
    Salida de muestra:

    /dev/sdd
    /dev/sdi
    /dev/sdj
    
b_laoshi
fuente
¿Qué pasa con las particiones de los discos internos que van montados /media?
muru
Eso presentaría un problema, pero que probablemente no afectará a la mayoría de los usuarios. Lo pensaré y actualizaré más tarde.
b_laoshi