Retrouvez vos exécutable du $PATH avec « which »

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 which 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.

Bash
echo $PATH

Pour retrouver un exécutable accessible via les chemins indiqués dans $PATH, il suffit d’utiliser la commande which.

Bash
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.

Bash
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.

Bash
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 »

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.