Извините, я хотел бы спросить об этом в виде комментария к выбранному ответу, но у меня пока нет ни одного представителя в 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
Действительно, если вы запускаете «which test_which.rb» из любого места, он должен сообщить
/usr/bin/test_which.rb
Вы все еще можете выполнить файл в текущем каталоге, набрав:
./test_which.rb
ls
это будет/usr/bin/ls
и./ls
не будет. Существует также препятствие, если вы знаете, как добавить.
к концу своего пути, у вас, вероятно, есть представление о том, что вы делаете. корень не должен никогда иметь.
в пути, многие системы не позволяют даже корневой журнал в больше.