Question / usr / bin / ou ~ / bin / priority


Voici une situation hypothétique ... Il existe deux binaires du même nom. Appelons-les charles. Un charles se trouve dans le répertoire / usr / bin / et l'autre dans ~ / bin /. En supposant que ~ / bin / est inclus dans le chemin d'exécution, quels charles seront exécutés lorsque la commande charles est appelée?


0
2018-01-10 23:14


origine




Réponses:


Si seulement la commande est émise, ce sera celle qui se trouve en premier dans votre $PATH. Si tu fais

echo $PATH

vous obtenez le chemin utilisé pour trouver un exécutable ...

/usr/local/sbin:/usr/local/bin:/usr/sbin:
/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

Si ~/bin/ 

  • n'est pas dans $ PATH, il ne sera pas trouvé.
  • est avant /usr/bin/ celui en ~/bin/ est utilisé;
  • est derrière /usr/bin/ celui en /usr/bin/ est utilisé;

Exception supplémentaire:

Si vous êtes dans le ~/bin/ répertoire et faire ./charles celui en ~/bin/ sera exécuté.


1
2018-01-10 23:23



Si dans un environnement de construction, où dans la chaîne sont ajoutés de nouveaux chemins? - leszakk


Cela dépend vraiment de l'endroit où / usr / bin et / bin et ~ / bin sont dans la variable PATH exportée.

EX:

 PATH=/usr/bin:/bin:~/bin
 -----> charles will be found in /usr/bin and used from there

 PATH=~/bin:/usr/bin:/bin
 -----> in this case charles will be found first in the users' bin 
        and used from there

0
2018-01-10 23:20



Où la variable de chemin est-elle stockée? - leszakk