そのパーティションのsysfsパスが与えられたら、USBフラッシュドライブのsysfs devpathを取得する方法は?

そのパーティションのsysfsパスが与えられたら、USBフラッシュドライブのsysfs devpathを取得する方法は?

ハブにUSBフラッシュドライブが接続されています。 sysfsのストレージデバイスパーティションdevpathはです/devices/pci0000:00/0000:00:12.2/usb6/6-1/6-1.2/6-1.2:1.0/host10/target10:0:0/10:0:0:0/block/sdb/sdb1。そのUSBデバイスパスを検索したい(つまり/devices/pci0000:00/0000:00:12.2/usb6/6-1/6-1.2、より良い/sys/bus/usb/devices/6-1.2)。 PCに接続されているすべてのデバイスでこれを行うには、いくつかのスクリプト言語(シェル、Pythonなど)を使用します。編集する:udevはrawパーティションのdevpathを取得しており、USBデバイスエントリを再追跡する必要があります。

最も簡単で愚かな方法は、項目6-1.2までの経路を探索することです。しかし、ここにはいくつかの深刻で明白な欠点があります。まず、デバイスがハブに接続されていても接続されていない可能性があるため、デバイスの開発パスが変更される可能性があります。第二に、デバイスにパーティションがある場合と存在しない場合があり、これによりdevpathも変更されます。また、6-1.2デバイスだけでなく、一般的なソリューションも必要です。

ディレクトリ内の実際のデバイスエントリへのシンボリックリンクがないようです.../block/sdb/sdb1。私が望むことを達成するためのエレガントな方法はありますか?

関連情報