¿Cómo probar si el comando es alias, función o binario?

Respuestas:

23

Si estás en Bash (u otro shell similar a Bourne), puedes usarlo type.

type command

le dirá si commandes 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 commandes un alias, función o shell incorporado, pero devuelve más información si es un script o un binario compilado.

Referencias

Joseph R.
fuente
3

La respuesta dependerá de qué shell estés usando.

Para zsh, Shell Builtin whence -wte dirá exactamente lo que quieres

p.ej

$ whence -w whence
whence : builtin
$ whence -w man     
man : command 
número 5
fuente
1

En zsh puede comprobar los aliases, functionsy commandslas 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'
ericbn
fuente