J'ai testé une installation minimale de Fedora. Pour vérifier le chemin des interprètes comme python ou node, j'utilise normalement which
.
Je remarque qu'il which
n'est pas installé par défaut. Je pourrais ajouter le package, mais je me demande s'il existe un shell intégré qui peut être utilisé pour effectuer cette tâche courante.
J'utilise bash 4.2.
which
. Pourquoi ne pas utiliser «lequel»? Que faut-il utiliser alors?Réponses:
Vous pouvez utiliser
type
, qui est un Bash intégré:Pour la documentation, voir
help [t]ype
, qui fait référence à latype
section de labash
page de manuel.(
help type
imprime les pages d'aide de deux prédéfinitions commençant par la chaîne "type", dont l'une est obsolète et sans aucun rapport avec cela.)la source
type -a
m'aime bien. pourquoi les crochets[t]ype
?type -a
affichera toutes les choses vers lesquelles pointe l'argument, et pas seulement ce qui serait exécuté lors de sa saisie.which
. Pourquoi ne pas utiliser «lequel»? Que faut-il utiliser alors?type -a
est toujours ce qu'elle exécuterait. Je fais la même chose que Glenn et j'utilise toujourstype -a
aussi.type -p
n'affiche pas le chemin si la commande est un alias.type -P
affiche toujours le chemin de commande correctement. je pense. nous devrions mettre à jour la réponse acceptée commetype -P
@ l0b0Vous pouvez utiliser
type
oucommand -v
. La sortie detype
est lisible par l'homme; la sortie decommand -v
peut être exécutée par Bash.Notez qu'ils sont en fait un peu différents.
type
etcommand
recherchez la valeur hachée de la commande. C'est-à-dire, si vous tapezcmd
,type cmd
oucommand -v cmd
vous dira exactement ce qui sera exécuté. Ils fonctionnent également sur les alias, les fonctions Bash et les modules intégrés Bash (bientype -p
qu'ils les ignorent et ne renvoient que les vrais fichiers).which
fait juste une recherche sur le CHEMIN. C'est différent parce que:which
, mais l'exécution de cette commande utilisera la valeur hachée (vous pouvez forcer la mise à jour du hachage dans Bash avechash -r
).Habituellement, les gens veulent vraiment
type
, paswhich
, au moins pour une utilisation interactive, car ils l'utilisent pour savoir "d'où vient cette commande lorsque je l'exécute?" Vous ne devez l'utiliser quewhich
si vous voulez vraiment faire une recherche PATH.la source
command -v
est l'équivalent deksh
whence
.where
,whence
et bien sûr aussiwho
,why
etwhen
? Pourquoi n'y en a-t-il paswhat
?echo 'main(){printf("what\n");}' | sudo cc -x c - -o /usr/local/bin/what