我正在寻找一种方法来创建目录并将我当前的工作目录更改为新创建的目录,只需使用一个命令即可。我怎样才能做到这一点?
即而不是做
user@Computer:~$ mkdir NewDirectory
user@Computer:~$ cd NewDirectory
user@Computer:~/NewDirectory$
Run Code Online (Sandbox Code Playgroud)
我想要做
user@computer:~$ **command** NewDirectory
user@Computer:~/NewDirectory$
Run Code Online (Sandbox Code Playgroud)
有什么可以在命令呢?
Mic*_*ael 28
如果您真的希望它只是一个命令,我建议在您的.bashrc
:
md () { mkdir -p "$@" && cd "$1"; }
Run Code Online (Sandbox Code Playgroud)
md foo
然后在命令行上输入将创建一个名为的目录foo
,cd
然后立即进入该目录。请记住,您必须重新加载您.bashrc
的更改才能生效(即打开一个新的控制台,或运行source ~/.bashrc
)。
参见 http://www.commandlinefu.com/commands/view/3613/create-a-directory-and-change-into-it-at-the-same-time也是可能的替代方案。
Rin*_*ind 22
mkdir "NewDirectory" && cd "NewDirectory"
&&
只有在第一个命令成功时才会执行。还有一个速记版本:
mkdir "NewDirectory" && cd "$_"
Run Code Online (Sandbox Code Playgroud)命令行示例:
$ false && echo "yes"
$ true && echo "yes"
yes
Run Code Online (Sandbox Code Playgroud)(编辑)将 " 添加到命令中,因为目录可能包含空格。
没有内置函数,但是您可以使用 shell 功能来帮助您cd
在运行后不必再次键入命令的参数mkdir
:
cd
,然后Esc .(或Alt+ .)以插入上一个命令的最后一个参数。cd !$
在cd
上一个命令的最后一个参数上执行。mkdir
为cd
.您可以在以下文件中定义一个简单的 make-and-change-directory 函数~/.bashrc
:
mkcd () { mkdir "$1" && cd "$1"; }
Run Code Online (Sandbox Code Playgroud)
重新加载.bashrc
( . ~/.bashrc
) 或重新启动 bash,现在您可以输入mkcd new-directory
.
这个简单的版本在一些涉及奇怪目录名称或..
符号链接的异常情况下失败。这是一个。有关解释,请参阅此问题的 Unix 和 Linux 版本。
mkcd () {
case "$1" in
/*) mkdir -p "$1" && cd "$1";;
*/../*) (cd "./${1%/../*}/.." && mkdir -p "./${1##*/../}") && cd "$1";;
../*) (cd .. && mkdir -p "${1#.}") && cd "$1";;
*) mkdir -p "./$1" && cd "./$1";;
esac
}
Run Code Online (Sandbox Code Playgroud)