Réponses:
Si vous êtes sur Bash (ou un autre shell de type Bourne), vous pouvez utiliser type
.
type command
vous dira si command
un shell est intégré, un alias (et si oui, un alias vers quoi), une fonction (et si c'est le cas, il listera le corps de la fonction) ou stocké dans un fichier (et si oui, le chemin d'accès au fichier) .
Pour plus d'informations sur un fichier "binaire", vous pouvez faire
file "$(type -P command)" 2>/dev/null
Cela ne renverra rien si command
un alias, une fonction ou un shell est intégré mais renvoie plus d'informations s'il s'agit d'un script ou d'un binaire compilé.
Les références
En zsh vous pouvez vérifier les aliases
, functions
et les commands
tableaux.
(( ${+aliases[foo]} )) && print 'foo is an alias'
(( ${+functions[foo]} )) && print 'foo is a function'
(( ${+commands[foo]} )) && print 'foo is an external command'
Il y a aussi builtins
, pour les commandes intégrées.
(( ${+builtins[foo]} )) && print 'foo is a builtin command'