ใช้ udev:
คุณสามารถรับการสืบค้นข้อมูลที่เป็นประโยชน์udev(ในระบบที่ใช้มัน - เกือบทุกประเภท Linuxes แน่นอน) ตัวอย่างเช่นหากคุณต้องการทราบว่าไดรฟ์ที่แนบมานั้นเชื่อมโยงกับ/dev/sdbอะไรคุณสามารถใช้:
udevadm info --query=property --name=sdb
มันจะแสดงรายการคุณสมบัติของอุปกรณ์นั้นรวมถึงอนุกรม (ID_SERIAL_SHORT) มีข้อมูลนั้นคุณสามารถดูผลลัพธ์lsusb -vและค้นหาสิ่งต่าง ๆ เช่นผู้ผลิตและชื่อผลิตภัณฑ์
เส้นทางที่สั้นลงในการทำเช่นนี้จะเป็น
udevadm info --query=property --name=sdb | grep "\(MODEL_ID\|VENDOR_ID\)"
และดูบรรทัดที่มีการจับคู่ ในผลลัพธ์ที่สั้นมากของ$ID_VENDOR_ID:$ID_MODEL_IDlsusb
udevadm monitorอีกหนึ่งทางเลือกที่มีประโยชน์ ใช้มันหากคุณต้องการทราบว่าโหนดอุปกรณ์จะถูกสร้างขึ้นที่จุดของการติดตั้งอุปกรณ์ ดังนั้นวิ่งครั้งแรก
udevadm monitor --udev --subsystem-match=block
จากนั้นเชื่อมต่ออุปกรณ์ คุณจะเห็นชื่ออุปกรณ์ของอุปกรณ์บล็อกที่ตรวจพบ (ดิสก์ / พาร์ติชัน) ที่พิมพ์ที่ส่วนท้ายของแต่ละบรรทัดเอาต์พุต
ฟังก์ชั่นเปลือกตัวอย่างการปฏิบัติ:
นี่คือฟังก์ชั่นที่คุณสามารถใส่ใน.bashrc(หรือ.zshrc):
listusbdisks ()
{
[["x $ 1" == "xv"]] && shift && local VERBOSE = -v
สำหรับ dsk ใน $ {@ - / dev / sd?}
ทำ
/ sbin / udevadm ข้อมูล --query = path --name = "$ dsk" | grep --colour = auto -q usb || ต่อ
echo "===== อุปกรณ์ $ dsk คือ:"
(eval $ (/ sbin / udevadm ข้อมูล - แบบสอบถาม = คุณสมบัติ - ชื่อ = "$ dsk" | grep "\ (MODEL \ | VENDOR \) _ ID")
["$ ID_VENDOR_ID: $ ID_MODEL_ID" == ":"] && echo "ไม่ทราบ" || \
lsusb $ VERBOSE -d "$ ID_VENDOR_ID: $ ID_MODEL_ID"
)
grep -q "$ dsk" / proc / mounts && echo "----- มีการติดตั้งอุปกรณ์ ----"
เสียงสะท้อน
เสร็จแล้ว
}
ใช้มันแบบนี้:
listusbdisks- เพื่อรับรู้/dev/sdxอุปกรณ์ทั้งหมด
listusbdisks sdbหรือlistusbdisks /dev/sdbหรือlistusbdisks sdb sdc- เพื่อรับข้อมูลเกี่ยวกับอุปกรณ์บางอย่างเท่านั้น
listusbdisks -v [optional devices as above] - เพื่อแสดงเอาท์พุตอย่างละเอียดของ lsusb
[แก้ไข]:lsusbเพิ่มฟังก์ชั่นบางอย่างเช่นการสอบถามอุปกรณ์จำนวนมากตรวจสอบม้าและการควบคุมของฟุ่มเฟื่อย