Ответ 1
$_
расширяется до последнего аргумента предыдущей простой команды * или предыдущей команде, если у нее не было аргументов.
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 "[email protected]" && cd "$_"
}
На практике $_
работает, как описано мной, но только с ||
, &&
, ;
или новой строкой в качестве управляющего оператора.