为什么"哪个推送"不返回任何内容?

  • 本文关键字:返回 任何内 linux
  • 更新时间 :
  • 英文 :


我的理解是,linux中的所有命令都必须存在于$PATH上,即使是最基本的命令

> which cd
/bin/cd
> which ls
/bin/ls

但当我尝试which pushd时,令我惊讶的是,它回来了:

/usr/bin/which: no pushd in (/bin:/usr/share/maven/bin:/usr/share/java/jdk1.8.0_131/bin:/usr/local/bin:/usr/bin:/usr/local/sbin)

CCD_ 3是";已安装";和工作。这挑战了我对linux命令的全部理解。

有人能解释为什么会发生这种情况吗?

有人能解释为什么会发生这种情况吗?

pushd和许多其他命令一样,是一个内置命令。which本身就是一个可执行文件,which搜索可执行文件——没有pushd这样的可执行文件。

要影响shell本身的当前工作目录,它必须是一个内置目录,就像cd一样。

你可以用type:检查它是什么

$ type pushd
pushd is a shell builtin

此类shell内置程序的其他示例有哪些?

它们在文档中列出:https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Shell-内置命令。

最新更新