我在教程中看到了此命令以创建一个新目录:
mkdir my-new-project && cd $_
我知道mkdir my-new-project
命令用于创建一个新目录,但是cd $_
做什么?
$_
将最后一个参数扩展到以前的简单命令*或以前的命令(如果没有参数)。
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手册将a 简单命令定义为"可选变量分配的序列,然后是空白分隔单词和重定向,并由控制操作员终止。 "/em>其中控制操作员是指|| & && ; ;; ( ) | |& <newline>
。
在实践中,$_
的工作方式如我所描述的,但仅与||
,&&
,;
或 Newline 作为控制操作员。
7。如何使用单个命令创建目录并切换到它。您可能已经知道,&amp; amp;操作员用于执行多个命令,$ _扩展到上一个命令的最后一个参数。
快速,如果需要的话,可以创建一个目录,也可以使用单个命令移至该目录。为此,运行以下命令:
$ mkdir [dir-name] && cd $_
对于来自Udacity版本控制的人,Howtoforge提供了一个很好的解释。