มีคำสั่งที่ฉันสามารถใช้เพื่อค้นหาพา ธ ไปยัง executable ได้อย่างง่ายดายหรือไม่? ฉันกำลังมองหาตัวระบุบนเครื่องของฉัน - เช่น pwd?
pwd identify
=> /usr/local/bin/identify
มีคำสั่งที่ฉันสามารถใช้เพื่อค้นหาพา ธ ไปยัง executable ได้อย่างง่ายดายหรือไม่? ฉันกำลังมองหาตัวระบุบนเครื่องของฉัน - เช่น pwd?
pwd identify
=> /usr/local/bin/identify
คำตอบ:
which
จะค้นหาเส้นทางของคุณเพื่อหาข้อโต้แย้งที่คุณให้ไว้ซึ่งจะพบได้ใน BSD หรือ SysV UNIX
moriarty:~ dave$ which bash true false
/bin/bash
/usr/bin/true
/usr/bin/false
which
จะไม่ให้ผลลัพธ์ใด ๆ สำหรับสคริปต์ที่กำหนดเอง (ที่อยู่ใน$PATH
) type
ทำ.
หากคุณใช้ bash builtin type
มันจะแสดงตำแหน่ง (ในพา ธ ) ทั้งหมดสำหรับคำสั่ง:
$ type -a ls
ls is aliased to `ls --color=always'
ls is /bin/ls
$ type -a printf
printf is a shell builtin
printf is /usr/bin/printf
$ type -a touch
touch is /usr/bin/touch
touch is /bin/touch
หากคำสั่งเป็นฟังก์ชั่นคำสั่งนั้นจะแสดงคำจำกัดความของฟังก์ชัน:
$ type -a somefunc
somefunc is a function
somefunc ()
{
echo "hello, world"
}
ตัวอย่างเหล่านี้มาจากระบบ Ubuntu แต่ผลลัพธ์จะคล้ายกันสำหรับ OS X
which
จะไม่แสดงพา ธ สำหรับสคริปต์ที่กำหนดเอง (ที่อยู่ใน$PATH
) type
ทำ.
ลอง 'ค้นหาตัวระบุ'
ขึ้นอยู่กับสิ่งที่คุณกำลังมองหา ยูทิลิตี้ส่วนใหญ่ขึ้นอยู่กับตัวแปรพา ธ อย่างไรก็ตามหากสิ่งที่คุณกำลังมองหาอยู่นั้นมีโอกาสที่คุณไม่จำเป็นต้องรู้ว่ามันอยู่ที่ไหนถ้าไม่มีไฟล์ปฏิบัติการเดียวกันหลายชุด
สิ่งนี้ไม่ได้ใช้กับสิ่งต่าง ๆ ส่วนใหญ่ที่ทำงานใน OSX แต่เนื่องจากมันไม่ได้ทำงานเหมือนกับ linux / unix ไบนารีทั่วไป นี่คือวิธีการบางอย่างในการค้นหาสิ่งที่ไม่ได้อยู่ในคำสั่งพา ธ ของคุณ
หา:
sudo find / -name <FILE>
สิ่งนี้จะค้นหาสิ่งที่มีอยู่ในระบบไฟล์ที่คุณให้เป็นอาร์กิวเมนต์แรก จำเป็นต้องเรียกใช้เป็นรูทเพื่อค้นหาไดเรกทอรีส่วนตัว นอกจากนี้ยังรองรับอักขระตัวแทนหากคุณไม่แน่ใจชื่อ
เทอร์มิ:
หากคุณมีไฟล์ในตัวค้นหาคุณสามารถเปิดหน้าต่างเทอร์มินัลและวางไฟล์ลงไป เทอร์มินัลจะแสดงพา ธ แบบเต็มไปยังไฟล์
Spotlight:
สวยด้วยตนเองอธิบาย คุณกำลังบริจาควงจรประมวลผลเพื่อให้สามารถเก็บดัชนีของ fi ของคุณ
which
คำสั่งแม้ว่าการทำงานจะเป็นเรื่องปกติไม่ได้เป็นเครื่องมือที่เหมาะสมกับการใช้งานที่จะทำประเภทของงานนี้ ดูคำถาม & คำตอบ U & L นี้: unix.stackexchange.com/questions/85249/…