Retrouvez vos exécutable du $PATH avec « which »
La variable d’environnement $PATH
contient une liste de chemins dans lequel sont stockés des exécutables, ce qui nous permet ainsi qu’aux applications d’y accéder sans devoir spécifier le chemin exact d’accès de l’exécutable en question. La commande whic
h nous permet de chercher dans les différents chemins du $PATH
pour y trouver un exécutable donné.
Commençons simplement par afficher le contenu de la variable $PATH
.
echo $PATH
Pour retrouver un exécutable accessible via les chemins indiqués dans $PATH
, il suffit d’utiliser la commande which
.
which <executable>
Nous pouvons par exemple chercher le chemin de l’exécutable ls
.
which
nous indique ici que ls
se trouve dans /usr/bin/ls
.
Nous pouvons aussi obtenir en une seule commande le chemin vers une série d’exécutables.
which <executable_1> <executable_2> ... <executable_n>
Nous pouvons par exemple obtenir d’un seul coup les chemins vers ls
, mkdir
et find
.
Certains exécutables existent à plusieurs endroits, which
nous permet d’afficher tous les chemins qui y correspondent dans $PATH
en utilisant l’option -a
.
which -a <executabe>
Nous pouvons par exemple utiliser which
pour obtenir tous les chemins connus pour accéder à l’interpréteur python3
.
Chose très importante à comprendre, c’est que which
ne cherche que dans les chemins indiqué dans $PATH
, cela signifie que l’absence de réponse de which
n’indique en rien l’absence de l’exécutable, tout au plus que $PATH
ne contient pas de chemin vers celui-ci, auquel cas il suffit d’invoquer l’exécutable par un chemin complet (relatif ou absolu).
Dans l’exemple ci-dessous j’ai créé un script bash myscript.sh
à la racine de mon répertoire personnel. Bien que je puisse exécuter le script en indiquant un chemin absolu ou relatif, which
ne le trouve pas, simplement parce que ce dossier n’est pas indiqué dans $PATH
.
Conclusion
L’utilitaire which
nous permet de parcourir l’ensemble des chemins indiqué dans la variable d’environnement $PATH
et de vérifier si l’exécutable (ou les exécutable) que nous cherchons s’y trouve. C’est donc un moyen simple de savoir si un exécutable peut être appelé par son simple nom ou s’il faut donner un chemin complet (relatif ou absolu).
0 Comments on “Retrouvez vos exécutable du $PATH avec « which »”