基本的linux可执行路径不显示

基本的linux可执行路径不显示

ls我正在尝试找到基本命令(例如或cd使用命令)的路径which。我看到了 的路径ls,但没有看到 的路径cd。当然这两个命令都可以正常工作。任何想法?

$ which ls
/bin/ls
$ which cd
$

答案1

cd始终是 shell 本身提供的内置命令。它不会作为外部实用程序被发现。这绝不是 Linux 特有的。

来自cdPOSIX 标准中的“应用程序使用”部分

由于cd影响当前 shell 执行环境,因此它始终作为 shell 常规内置提供。如果在子 shell 或单独的实用程序执行环境中调用它,例如以下之一:

(cd /tmp)
nohup cd
find . -exec cd {} \;

它不会影响调用者环境的工作目录。


查找命令路径的一种可移植方法是使用command -v

bash-4.4$ command -v ls
/bin/ls
bash-4.4$ command -v cd
cd

type会稍微详细一些:

bash-4.4$ type ls
ls is /bin/ls
bash-4.4$ type cd
cd is a shell builtin

也可以看看 ”为什么不用“哪个”呢?那该用什么呢?

相关内容