Désolé, j'aimerais poser cette question sous la forme d'un commentaire à la réponse sélectionnée, mais je n'ai pas encore de représentant sur superuser.
La réponse concernant la sécurité est logique, mais si vous mettez "." dans votre PATH en dernier, le Shell ne devrait-il pas regarder dans le répertoire courant en dernier lorsqu'il recherche des exécutables, et ainsi réduire le risque de sécurité ? S'il recherchait effectivement $PATH dans l'ordre, il trouverait /bin/ls avant de trouver ./ls.
Dans quelle mesure est-il dangereux pour moi de mettre "." à la fin de ma variable d'environnement $PATH ?
Cela fonctionne comme je le suggère. Voici comment j'ai testé :
Tout d'abord, ajoutez "." à la FIN de votre variable d'environnement PATH.
Ensuite, placez le fichier suivant dans un répertoire quelconque, tel que ~/dir1/dir2/test_which.rb :
#!/your/path/to/ruby
puts "this file is from the current directory"
Et mettez ce fichier dans /usr/bin/test_which.rb
#!/your/path/to/ruby
puts "this file is at /usr/bin/test_which.rb"
Assurez-vous de chmod +x les fichiers pour qu'ils soient exécutables.
Maintenant, si vous changez de répertoire pour ~/dir1/dir2, et exécutez test_which.rb, vous obtiendrez le résultat suivant
this file is at /usr/bin/test_which.rb
En effet, si vous exécutez "which test_which.rb" depuis n'importe où, il devrait rapporter
/usr/bin/test_which.rb
Vous pouvez toujours exécuter le fichier dans le répertoire courant en tapant :
./test_which.rb