我正在阅读一篇关于各种 Linux 命令的文章,这些命令可以显示搜索路径中程序的位置,包括which
、type
和whereis
。文章说这type
是一个内置的 bash 命令,当我运行type type
它时确实输出“type is a shellbuiltin”。但是,当我运行时which type
,而不是不输出任何内容(这是这AskUbuntu post),它输出“/usr/bin/type”。which
由于我使用 Fedora 而不是 Ubuntu,因此不同的发行版是否会导致不同的输出?另外,为什么我的系统上会有一个单独的程序被调用/usr/bin/type
,它和内置的bash命令有什么区别?另外,我还注意到/usr/bin/cd
我的系统上有一个程序,同时cd
也是一个内置的bash命令。我也知道 bash 内置time
命令和/usr/bin/time
程序之间的区别,但似乎/usr/bin/type
和内置类型命令在我的系统上做几乎相同的事情。
答案1
在Fedora中,bash包提供了一个文件/usr/bin/type
https://www.rpmfind.net/linux/RPM/fedora/devel/rawhide/x86_64/b/bash-5.2.21-2.fc40.x86_64.html
由于 type 是 bash 的内置文件,因此 /usr/bin/type 文件很可能是 bash 的符号链接。