Questo può richiedere un po 'di estrapolazione, ma usa il valore di "Velocità" in system_profiler
Ad esempio, guardando il ricevitore USB Logitech (per il mio mouse e la seconda tastiera):
$ system_profiler SPUSBDataType | grep Logitech -A5
Vendor ID: 0x046d (Logitech Inc.)
Version: 12.01
Speed: Up to 12 Mb/sec
Manufacturer: Logitech
Location ID: 0x14200000 / 3
Current Available (mA): 1000
Current Required (mA): 98
Extra Operating Current (mA): 0
Guardando il valore "Speed", mi dice che è un dispositivo USB 1.1. Facendo la stessa ricerca per il mio disco USB FreeAgent Go Seagate, ottengo il seguente:
system_profiler SPUSBDataType | grep Seagate -A5
Vendor ID: 0x0bc2 (Seagate LLC)
Version: 1.48
Serial Number: 2GE7WLWG
Speed: Up to 480 Mb/sec
Manufacturer: Seagate
Location ID: 0x14320000 / 23
Current Available (mA): 1000
Current Required (mA): 100
Extra Operating Current (mA): 0
Capacity: 500.11 GB (500,107,861,504 bytes)
Mi dice che ha una velocità di 480 Mb / s che è un dispositivo USB 2.0.
Non devi generare tutti quei dati extra, lo sto solo usando a scopo illustrativo, invece puoi semplicemente restringerlo alla riga che contiene il valore di velocità:
$ system_profiler SPUSBDataType | grep Seagate -A5 | grep Speed
Speed: Up to 480 Mb/sec
Per riferimento, USB velocità / specifiche sono i seguenti:
USB 1.x - 12Mb/sec
USB 2.0 - 480Mb/sec
USB 3.0 - 5Gb/s
USB 3.1 - 10Gb/s