Câu trả lời:
Nếu bạn đang ở trên Bash (hoặc một vỏ giống như Bourne khác), bạn có thể sử dụng type.
type command
sẽ cho bạn biết liệu commandshell được tích hợp sẵn, bí danh (và nếu vậy, bí danh là gì), hàm (và nếu vậy nó sẽ liệt kê thân hàm) hoặc được lưu trữ trong một tệp (và nếu vậy, đường dẫn đến tệp) .
Để biết thêm thông tin về tệp "nhị phân", bạn có thể làm
file "$(type -P command)" 2>/dev/null
Điều này sẽ không trả về gì nếu commandlà bí danh, hàm hoặc shell tích hợp nhưng trả về nhiều thông tin hơn nếu đó là tập lệnh hoặc tệp nhị phân được biên dịch.
Tài liệu tham khảo
Trong zsh bạn có thể kiểm tra aliases, functionsvà commandsmảng.
(( ${+aliases[foo]} )) && print 'foo is an alias'
(( ${+functions[foo]} )) && print 'foo is a function'
(( ${+commands[foo]} )) && print 'foo is an external command'
Ngoài ra builtins, đối với các lệnh dựng sẵn.
(( ${+builtins[foo]} )) && print 'foo is a builtin command'