Maaf, saya ingin menanyakan ini dalam bentuk komentar untuk jawaban yang dipilih, tetapi saya belum memiliki perwakilan tentang pengguna super.
Jawaban keamanan masuk akal, tetapi jika Anda menempatkan "." di PATH Anda sebagai hal terakhir, bukankah shell seharusnya terlihat di direktori saat ini saat ia mencari executable, dan dengan demikian mengurangi risiko keamanan? Jika ia mencari $ PATH secara berurutan, ia akan menemukan / bin / ls sebelum ditemukan ./ls.
Jadi, betapa tidak amannya bagi saya untuk menempatkan "." pada akhir variabel lingkungan $ PATH saya?
Ini berfungsi seperti yang saya sarankan. Inilah cara saya menguji:
Pertama, tambahkan "." hingga AKHIR variabel lingkungan PATH Anda.
Kemudian, letakkan file berikut di beberapa direktori, seperti ~ / dir1 / dir2 / test_which.rb:
#!/your/path/to/ruby
puts "this file is from the current directory"
Dan letakkan file ini di /usr/bin/test_which.rb
#!/your/path/to/ruby
puts "this file is at /usr/bin/test_which.rb"
Pastikan chmod + x file sehingga dapat dieksekusi.
Sekarang, jika Anda mengubah direktori menjadi ~ / dir1 / dir2, dan jalankan test_which.rb, Anda akan mendapatkan hasilnya
this file is at /usr/bin/test_which.rb
Memang, jika Anda menjalankan "yang test_which.rb" dari mana saja, itu harus melaporkan
/usr/bin/test_which.rb
Anda masih dapat menjalankan file di direktori saat ini dengan mengetik:
./test_which.rb
ls
akan/usr/bin/ls
dan./ls
tidak. Ada juga rintangan jika Anda tahu cara menambahkan.
ke ujung jalan Anda, Anda mungkin tahu apa yang Anda lakukan. root seharusnya tidak ada.
di path, banyak sistem bahkan tidak membiarkan root login lagi.