Ответы:
Если вы используете Bash (или другую оболочку, похожую на Bourne), вы можете использовать type
.
type command
сообщит вам, command
является ли встроенная оболочка, псевдоним (и, если да, псевдонимом чего-либо), функцией (и если да, то она перечислит тело функции) или хранится в файле (и если да, путь к файлу) ,
Для получения дополнительной информации о «двоичном» файле, вы можете сделать
file "$(type -P command)" 2>/dev/null
Это ничего не даст, если command
встроен псевдоним, функция или оболочка, но вернет больше информации, если это скрипт или скомпилированный двоичный файл.
Ссылки
В ЗШ вы можете проверить aliases
, functions
и commands
массивы.
(( ${+aliases[foo]} )) && print 'foo is an alias'
(( ${+functions[foo]} )) && print 'foo is a function'
(( ${+commands[foo]} )) && print 'foo is an external command'
Там же builtins
, для встроенных команд.
(( ${+builtins[foo]} )) && print 'foo is a builtin command'