什么'cd $ _'是什么意思?

时间:2015-05-10 17:53:28

标签: bash

我在教程中看到了这个命令来创建一个新目录:

mkdir my-new-project && cd $_

我知道mkdir my-new-project命令用于创建新目录,但cd $_做了什么?

2 个答案:

答案 0 :(得分:49)

$_扩展到前一个简单命令* 的最后一个参数,如果它没有参数,则扩展到上一个命令。

mkdir my-new-project && cd $_

^这里有一个由两个简单命令组成的命令。第一个参数是my-new-project,因此第二个简单命令中的$_将扩展为my-new-project

举另一个例子:

echo a b; echo $_
#Will output:
#a b
#b

无论如何,mkdir some_dir && cd $_是一个非常常见的组合。如果你厌倦了输入它,我认为将它作为一个功能是个好主意:

mkdircd() {
  #Make path for each argument and cd into the last path 
  mkdir -p "$@" && cd "$_" 
}

* bash manual简单命令定义为&#34;一系列可选变量赋值,后跟空格分隔的单词和重定向,并由控制运算符终止。 &#34; 其中控制运算符是指|| & && ; ;; ( ) | |& <newline>之一。

在实践中,$_的工作方式与我所描述的相同,但仅适用于||&&;换行符控制操作员。

答案 1 :(得分:2)

7。如何使用单个命令创建目录并切换到该目录。正如您可能已经知道的那样,&amp;&amp; operator用于执行多个命令,$ _扩展为上一个命令的最后一个参数。

很快,如果需要,您可以创建目录并使用单个命令移动到该目录。为此,请运行以下命令:

$ mkdir [dir-name] && cd $_

对于那些来自Udacity的Git版本控制的人,HowToForge提供了很好的解释,here