我在教程中看到了这个命令来创建一个新目录:
mkdir my-new-project && cd $_
我知道mkdir my-new-project
命令用于创建新目录,但cd $_
做了什么?
答案 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。