Desculpe, gostaria de perguntar isso na forma de um comentário à resposta selecionada, mas ainda não tenho nenhum representante no superusuário.
A resposta de segurança faz sentido, mas se você colocar "." no seu PATH como a última coisa, o shell não deve procurar no diretório atual por último, pois ele procura executáveis e, assim, reduz 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. Veja como eu testei:
Primeiro, adicione "." ao END da 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 os arquivos para que eles sejam executáveis.
Agora, se você alterar o diretório para ~ / dir1 / dir2 e executar test_which.rb, você obterá a saída
this file is at /usr/bin/test_which.rb
De fato, se você rodar "which test_which.rb" de qualquer lugar, ele deve reportar
/usr/bin/test_which.rb
Você ainda pode executar o arquivo no diretório atual digitando:
./test_which.rb