Which est un pronom relatif anglais signifiant « lequel ».
which est également une commande POSIX qui retourne le chemin des fichiers qui seraient exécutés dans l'environnement courant si ses arguments avaient été donnés comme commandes dans un interpréteur de commandes strictement conforme à POSIX. Pour ce faire, which cherche dans la variable PATH les fichiers exécutables correspondants aux noms des arguments.
Exemple sous bash :
$> which which /usr/bin/which $> which less /usr/bin/less $> which echo /bin/echo
Which se trompe pour echo, puisque c'est la plupart du temps une primitive du shell.
Sous zsh, which est une primitive du shell, ce qui lui donne l'avantage de retrouver les alias, les commandes internes et les fonctions du shell.
$> which which which: shell built-in command $> which less /usr/bin/less $> which echo echo: shell built-in command