ตัวอย่างเช่นฉันได้gitติดตั้งบนระบบของฉัน แต่ฉันจำไม่ได้ว่าติดตั้งไว้ที่ใดดังนั้นคำสั่งใดเหมาะสมที่จะค้นหาคำตอบนี้
ตัวอย่างเช่นฉันได้gitติดตั้งบนระบบของฉัน แต่ฉันจำไม่ได้ว่าติดตั้งไว้ที่ใดดังนั้นคำสั่งใดเหมาะสมที่จะค้นหาคำตอบนี้
คำตอบ:
ถ้ามันอยู่ในเส้นทางของคุณแล้วคุณสามารถเรียกใช้อย่างใดอย่างหนึ่งหรือtype git คำสั่งได้มีปัญหาในการเส้นทางที่เหมาะสม (สับสนระหว่างสภาพแวดล้อมและไฟล์ dot) สำหรับคุณจะได้รับเพียงเส้นทางที่มีการโต้แย้งwhich gitwhichtype-p
ถ้ามันไม่ได้อยู่ในเส้นทางของคุณแล้วมันจะเป็นการดีที่สุดที่จะมองหามันด้วยlocate -b git มันจะพบสิ่งที่ชื่อว่า 'git' locate -b git | fgrep -w binมันจะเป็นรายการยาวดังนั้นอาจจะดีที่จะมีสิทธิ์ด้วย
locateไม่สิ้นสุด (มันเร็วมาก) แต่สำหรับผู้ที่ไม่รู้ตัวมันlocateเป็นแค่ข้อมูลล่าสุดในการอัพเดทฐานข้อมูลล่าสุดซึ่งจะทำงานโดยอัตโนมัติทุกวันบน Ubuntu ของฉัน รีเฟรชคำสั่งsudo updatedb... นอกจากนี้locateได้สร้างความสามารถในการ regex ดังนั้นคำสั่งเช่นนี้การทำงาน: locate -br "^git$"... วิธี -b` จำกัด การค้นหาเพื่อเพียงbasename ... หรือไม่มี-bจะค้นหาชื่อพา ธ เต็ม .. นอกจากนี้ จะค้นหาเฉพาะเส้นทางที่คุณกำหนดค่าให้ค้นหา .. ไม่มีการควบคุมบรรทัดคำสั่งของตัวกรอง regex อื่น ๆ
typeเป็น shell builtin ที่บอกนามแฝงและเช่นนั้นและwhichเป็นโปรแกรมภายนอกที่แสดงเส้นทางให้ฉันไปสู่การปฏิบัติการ ... แม้ว่าจะมี builtin ที่เข้ามา วิธีที่ปฏิบัติการไม่ได้ถูกเรียก
whichคือมันไม่รู้เกี่ยวกับเชลล์ในตัวและฟังก์ชั่นของเชลล์ (ซึ่งเกี่ยวข้องเมื่อคุณสงสัยว่าการพิมพ์คำสั่งจะทำอะไร) และมันใช้ระบบที่แตกต่างกัน$PATHในบางระบบ
มาตรฐาน POSIXcommand -v gitวิธีที่จะทำเช่นนี้คือ ระบบเหมือน UNIX ทั้งหมดควรสนับสนุนสิ่งนี้
whereis git และคุณได้รับเส้นทางไปยังคำสั่ง
นั่นคือถ้า git อยู่ในตัวแปร PATH ของคุณในกรณีที่คุณติดตั้งมันไม่ผ่านตัวจัดการแพคเกจของคุณมันมีความซับซ้อนมากขึ้นและคุณควรใช้findหรือlocateคำสั่ง
whichยังได้รับการสนับสนุน
คำตอบอื่น ๆ ที่นี่ดูเหมือนจะมุ่งไปทางส่วนใหญ่เป็นรุ่นที่ทันสมัยของ Linux ดังนั้นหากคุณเกิดขึ้นที่จะใช้gitในระบบปฏิบัติการที่ไม่ได้มีlocate, whereis, whichหรือapropos(เช่น Solaris, HPUX ฯลฯ ) findแล้วมีอยู่เสมอสแตนด์บายเก่า
find / -name git
หนึ่งบางรุ่นเก่าของระบบดังกล่าวข้างต้นคุณอาจจำเป็นต้องมีตัวเลือกที่จ่ายให้กับ-printfind
find / -name git -print
และถ้าคุณใช้locateให้แน่ใจว่าคุณเรียกใช้updatedbเป็นระยะ ( locate.updatedbบนอนุพันธ์ BSD บางส่วน)
typeฉันไม่เคยรู้เกี่ยวกับ :) นั่นคือรายการเพลงที่แน่นอน!
findจะทำการค้นหาในระดับลึกครั้งแรกของระบบไฟล์โดยเริ่มจากทุกที่ที่คุณรูท ดังนั้นfind / -name gitจะข้ามทั้งระบบของคุณ หากคุณรู้ว่าโปรแกรมนั้นอยู่บนเส้นทางของคุณคุณก็สามารถทำได้IFS=":"; path=$PATH; set $path; for dir in $path; do find $dir -name git; doneแม้ว่าระบบไฟล์ Unix จะได้รับอนุญาตมากพอที่จะทำให้เกิดความPATHเสียหายได้หลายวิธีหากมีอักขระแปลก ๆ อยู่ในตัว
PATH, สิ่งที่ถูกต้อง (ที่มีคำเตือนเช่นเดียวกับก่อน) IFS=":"; for dir in $PATH; do find "$dir" -name git; doneเป็น นอกจากนี้เพื่อย้ำคำตอบนี้ควรใช้โดยผู้ที่ไม่สามารถเข้าถึงtypeหรือwhich หรือ locateเกือบจะไม่มีใคร คำตอบของ @ Arcege ถูกต้อง
เพื่อให้ได้เส้นทางที่จะติดตั้งโปรแกรมที่คุณใช้งานทั้งหรือwhereis whichหากคุณเกิดขึ้นที่จะลืมมันเป็นชื่อที่คุณสามารถใช้aproposกับคำพ้องความหมายหรือคำอธิบายของยูทิลิตี้ของคุณเช่นจะได้พบกับapropos "version control" gitต่อไปนี้เป็นหลักสูตรwhatisคำสั่งสรุปสั้น ๆ ฟังก์ชั่นของโปรแกรม อย่างไรก็ตามสิ่งนี้ไม่ได้ใช้กับโปรแกรมและฟังก์ชั่นทั้งหมดในระบบของคุณ whatis "the meaning of life, universe and everything"ลองยกตัวอย่างเช่น
whichcommand" แน่นอน :)