ls
我正在尝试找到基本命令(例如或cd
使用命令)的路径which
。我看到了 的路径ls
,但没有看到 的路径cd
。当然这两个命令都可以正常工作。任何想法?
$ which ls
/bin/ls
$ which cd
$
答案1
cd
始终是 shell 本身提供的内置命令。它不会作为外部实用程序被发现。这绝不是 Linux 特有的。
由于
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
也可以看看 ”为什么不用“哪个”呢?那该用什么呢?”