ใช้ 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_ID
lsusb
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
เพิ่มฟังก์ชั่นบางอย่างเช่นการสอบถามอุปกรณ์จำนวนมากตรวจสอบม้าและการควบคุมของฟุ่มเฟื่อย