Desculpe, gostaria de fazer isso na forma de um comentário para a resposta selecionada, mas ainda não tenho nenhum representante no superusuário.
A resposta de segurança faz sentido, mas se você colocar "." no PATH como a última coisa, o shell não deve procurar no diretório atual por último enquanto procura por executáveis e, assim, reduzir o risco de segurança? Se ele pesquisasse $ PATH em ordem, encontraria / bin / ls antes de encontrar ./ls.
Então, quão inseguro é para mim colocar "." no final da minha variável de ambiente $ PATH?
Funciona como eu sugiro. Aqui está como eu testei:
Primeiro, adicione "." até o final da sua variável de ambiente PATH.
Em seguida, coloque o seguinte arquivo em algum diretório, como ~ / dir1 / dir2 / test_which.rb:
#!/your/path/to/ruby
puts "this file is from the current directory"
E coloque este arquivo em /usr/bin/test_which.rb
#!/your/path/to/ruby
puts "this file is at /usr/bin/test_which.rb"
Certifique-se de chmod + x dos arquivos para que sejam executáveis.
Agora, se você alterar o diretório para ~ / dir1 / dir2 e executar test_which.rb, obterá a saída
this file is at /usr/bin/test_which.rb
De fato, se você executar "what test_which.rb" de qualquer lugar, ele deverá reportar
/usr/bin/test_which.rb
Você ainda pode executar o arquivo no diretório atual digitando:
./test_which.rb
ls
será/usr/bin/ls
ou./ls
não. Há também o obstáculo de que, se você souber como adicionar.
um final ao seu caminho, provavelmente terá alguma ideia do que está fazendo. O root nunca deve estar.
no caminho, muitos sistemas nem deixam mais o logon raiz.