ขออภัยฉันต้องการถามสิ่งนี้ในรูปแบบของความคิดเห็นต่อคำตอบที่เลือก แต่ฉันยังไม่มีตัวแทนใน superuser เลย
คำตอบการรักษาความปลอดภัยทำให้รู้สึก แต่ถ้าคุณใส่ "." ใน PATH ของคุณเป็นสิ่งสุดท้ายเชลล์ไม่ควรดูในไดเรกทอรีปัจจุบันครั้งสุดท้ายเมื่อค้นหาไฟล์ปฏิบัติการและลดความเสี่ยงด้านความปลอดภัย? หากพบคำสั่ง $ PATH ก็จะพบ / bin / ls ก่อนที่จะพบ. / ls
ดังนั้นวิธีที่ไม่ปลอดภัยสำหรับฉันคือใส่ "." ในตอนท้ายของตัวแปรสภาพแวดล้อม $ PATH ของฉัน
มันทำงานได้ตามที่ฉันแนะนำ นี่คือวิธีที่ฉันทดสอบ:
ก่อนอื่นเพิ่ม "." ไปที่จุดสิ้นสุดของตัวแปรสภาพแวดล้อม PATH ของคุณ
จากนั้นใส่ไฟล์ต่อไปนี้ในบางไดเร็กทอรีเช่น ~ / dir1 / dir2 / test_which.rb:
#!/your/path/to/ruby
puts "this file is from the current directory"
และวางไฟล์นี้ที่ /usr/bin/test_which.rb
#!/your/path/to/ruby
puts "this file is at /usr/bin/test_which.rb"
ต้องแน่ใจว่าได้ chmod + x ไฟล์เพื่อให้สามารถเรียกใช้
ตอนนี้ถ้าคุณเปลี่ยนไดเรกทอรีเป็น ~ / dir1 / dir2 และรัน test_which.rb คุณจะได้ผลลัพธ์
this file is at /usr/bin/test_which.rb
แน่นอนถ้าคุณเรียกใช้ "ซึ่ง test_which.rb" จากที่ใดก็ควรรายงาน
/usr/bin/test_which.rb
คุณยังสามารถเรียกใช้งานไฟล์ในไดเรกทอรีปัจจุบันได้โดยพิมพ์:
./test_which.rb
ls
จะเป็น/usr/bin/ls
และ./ls
ไม่ นอกจากนี้ยังมีอุปสรรค์ถ้าคุณรู้วิธีเพิ่ม.
ไปยังจุดสิ้นสุดของเส้นทางของคุณคุณอาจมีความคิดว่าคุณกำลังทำอะไรอยู่ รากควรไม่เคยมี.
อยู่ในเส้นทางของระบบจำนวนมากไม่ได้ให้เข้าสู่ระบบรากในอีกต่อไป