Вибачте, я хотів би задати це у вигляді коментаря до вибраної відповіді, але у мене ще немає жодного представника щодо суперпользователя.
Відповідь безпеки має сенс, але якщо ви поставите "". у вашому 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
Дійсно, якщо ви запустите "what test_which.rb" з будь-якого місця, він повинен звітувати
/usr/bin/test_which.rb
Ви можете виконати файл у поточному каталозі, ввівши:
./test_which.rb
ls
буде/usr/bin/ls
і./ls
не є. Існує також перешкода, якщо ви знаєте, як додати.
до кінця свого шляху, ви, мабуть, маєте уявлення про те, що робите. корінь ніколи не повинен мати.
шлях, багато систем навіть не дозволяють кореням увійти.