คุณสามารถใช้หรือtype
command -v
ผลลัพธ์ของtype
การอ่านเป็นมนุษย์ เอาต์พุตของcommand -v
สามารถถูกดำเนินการโดย Bash
โปรดทราบว่าพวกเขาแตกต่างกันเล็กน้อย type
และcommand
ค้นหาค่าแฮชของคำสั่ง กล่าวคือถ้าคุณพิมพ์cmd
, type cmd
หรือcommand -v cmd
จะบอกคุณว่าสิ่งที่จะถูกเรียกใช้ พวกเขายังทำงานกับนามแฝงฟังก์ชั่นทุบตีและ Bash builtins (แม้ว่าtype -p
จะไม่สนใจสิ่งเหล่านี้และส่งคืนไฟล์จริงเท่านั้น)
which
แค่ค้นหาบน PATH สิ่งนี้แตกต่างกันเนื่องจาก:
- หากมีนามแฝงฟังก์ชั่นหรือ builtin ที่มีชื่อเดียวกันมันจะถูกเรียกแทน
- หากคำสั่งถูกเพิ่มไว้ก่อนหน้าใน PATH ตั้งแต่คำสั่งแฮชครั้งสุดท้ายจะพบ
which
แต่การดำเนินการคำสั่งนั้นจะใช้ค่าแฮช (คุณสามารถบังคับให้อัพเดตแฮชใน Bash ด้วยhash -r
)
โดยปกติแล้วผู้คนต้องการอย่างแท้จริงtype
ไม่ใช่which
อย่างน้อยสำหรับการใช้แบบอินเทอร์แอคทีฟเนื่องจากพวกเขาใช้เพื่อค้นหา "คำสั่งนี้มาจากไหนเมื่อฉันเรียกใช้งาน" คุณควรใช้เฉพาะwhich
เมื่อคุณต้องการค้นหา PATH จริงๆ