Désolé, j'aimerais poser cette question sous la forme d'un commentaire à la réponse choisie, mais je n'ai pas encore de représentant sur le superutilisateur.
La réponse de sécurité est logique, mais si vous mettez "." Dans votre PATH comme dernière chose, le shell ne devrait-il pas regarder dans le répertoire en cours en dernier lorsqu'il cherche des exécutables, et réduire ainsi le risque de sécurité? Si elle cherchait $ PATH dans l'ordre, elle trouverait / bin / ls avant de trouver ./ls.
Alors, à quel point il m'est incertain 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, tel que ~ / dir1 / dir2 / test_which.rb:
#!/your/path/to/ruby
puts "this file is from the current directory"
Et mettez ce fichier à /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 en ~ / dir1 / dir2 et exécutez test_which.rb, vous obtiendrez le résultat
this file is at /usr/bin/test_which.rb
En effet, si vous exécutez "quel test_which.rb" de n'importe où, il devrait signaler
/usr/bin/test_which.rb
Vous pouvez toujours exécuter le fichier dans le répertoire actuel en tapant:
./test_which.rb
ls
sera/usr/bin/ls
ou./ls
ne sera pas. Il y a aussi l'obstacle de si vous savez comment ajouter.
à la fin de votre chemin, vous avez probablement une idée de ce que vous faites. root ne devrait jamais avoir.
dans le chemin, beaucoup de systèmes ne laissent même plus la connexion root.