Respuestas:
Si estás en Bash (u otro shell similar a Bourne), puedes usarlo type
.
type command
le dirá si command
es un shell incorporado, alias (y si es así, alias a qué), función (y si es así, enumerará el cuerpo de la función) o almacenado en un archivo (y si es así, la ruta al archivo) .
Para obtener más información sobre un archivo "binario", puede hacer
file "$(type -P command)" 2>/dev/null
Esto no devolverá nada si command
es un alias, función o shell incorporado, pero devuelve más información si es un script o un binario compilado.
Referencias
En zsh puede comprobar los aliases
, functions
y commands
las matrices.
(( ${+aliases[foo]} )) && print 'foo is an alias'
(( ${+functions[foo]} )) && print 'foo is a function'
(( ${+commands[foo]} )) && print 'foo is an external command'
También hay builtins
, para los comandos incorporados.
(( ${+builtins[foo]} )) && print 'foo is a builtin command'