Linux lets you see your USB tree with lsusb -t
. That includes negotiated data transfer speeds.
This doesn't, strictly-speaking, give you the cable speed, but it does give you the link speed to another USB device, so if you have a computer with a fast USB controller and a fast USB device (probably a new hub would work well here), such that any limiting factor is the cable, you can see what speed they have negotiated over the cable, which I suppose effectively tells you what speed the cable can support.
A snippet of mine:
/: Bus 004.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/5p, 20000M/x2
|__ Port 005: Dev 005, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 003: Dev 006, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 004: Dev 007, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 001: Dev 008, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/: Bus 005.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/2p, 480M
|__ Port 002: Dev 002, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 004: Dev 003, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 001: Dev 004, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 001: Dev 004, If 1, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 002: Dev 005, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 003: Dev 006, If 0, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 003: Dev 006, If 1, Class=Audio, Driver=snd-usb-audio, 12M
|__ Port 003: Dev 006, If 2, Class=Human Interface Device, Driver=usbhid, 12M
Those numbers there (20000M, 5000M, 480M, 12M, 1.5M) are the data transfer rates supported to the device.