pushd
将目录推入目录堆栈,并更改工作目录。我想这就是我们所需要的。
但除此之外,为什么pushd
总是将堆栈输出到stdout?我认为这是不必要的,会给屏幕带来混乱,或者我错过了它的意义。谢谢。
答案1
仅当命令成功时,它并不总是这样做。从联机帮助页:
如果 Pushd 命令成功,还会执行 dirs。
我们无法读懂原始程序员的想法,但我们可以想象这是为了确保通知用户堆栈的更新内容。
答案2
pushd
主要popd
提供一种便捷的方式来交互式地导航目录。在脚本中,cd
更常用。
作为一种交互式工具,pushd
每当新目录成功推送到目录堆栈上时,都会向用户提供有关目录堆栈当前状态的反馈。该cd
命令有时包含在 shell 函数中(仅用于交互使用),每当当前工作目录更改时,该函数都会以相同的方式输出新目录。 shellr
中的别名会ksh
重复最近给出的命令,也会以回显正在执行的实际命令的形式向用户提供反馈。
所有这些小反馈都是为了帮助用户导航,并且通常确保他们在使用交互式 shell 提示符时正在做他们认为正在做的事情。