2.0 KiB
La commande type sous Linux
La commande type permet de savoir comment le shell interprète un nom de commande : alias, fonction, primitive (builtin), mot-clé du shell ou exécutable sur le disque. C'est un outil précieux pour comprendre pourquoi une commande se comporte d'une certaine manière et pour déboguer son environnement shell.
type est une primitive intégrée à Bash (et conforme à POSIX), il n'y a donc rien à installer.
Syntaxe
type [options] nom [nom ...]
Où nom est la commande à examiner. Plusieurs noms peuvent être passés en argument.
Les options
-
-a: affiche toutes les interprétations possibles du nom, dans l'ordre où le shell les considère (alias, fonction, builtin, puis exécutables trouvés dansPATH). -
-t: affiche un mot unique décrivant le type de la commande :alias,function,builtin,keywordoufile. Pratique dans les scripts. -
-p: affiche le chemin de l'exécutable qui serait lancé. Ne produit aucune sortie si le nom correspond à un alias, une fonction ou un builtin. -
-P: force la recherche dansPATHet affiche le chemin de l'exécutable correspondant, même si le nom est aussi un alias ou une fonction.
Exemples
Vérifier un alias :
$ type ls
ls est un alias vers « ls --color=auto »
Afficher toutes les interprétations d'un nom :
$ type -a ls
ls est un alias vers « ls --color=auto »
ls est /usr/bin/ls
Identifier une primitive du shell :
$ type cd
cd est une primitive du shell
Vérifier un exécutable binaire :
$ type grep
grep est /usr/bin/grep
Obtenir uniquement le type, utile en script :
$ type -t grep
file
$ type -t cd
builtin
Récupérer le chemin d'un binaire en ignorant un éventuel alias :
$ type -P ls
/usr/bin/ls
En résumé, type est l'outil le plus fiable pour répondre à la question « qu'est-ce qui s'exécute réellement quand je tape cette commande ? », là où which ne voit que les fichiers du PATH.