一个命令来创建和更改目录(One command to create and change dire

2019-07-17 19:21发布

我在寻找只有一个命令-自认倒霉&&| - 创建一个目录,然后立即改变当前目录切换到新创建的目录。 (这是一个问题的人得到了他的“Linux的使用”的考试,他做出这样做,一个新的命令,但是这并没有给他点)。这是一个Debian的服务器上,如果该事项。

Answer 1:

我相信你正在寻找这样的:

mkdir project1 && cd "$_"


Answer 2:

在定义该目的的bash 函数 $HOME/.bashrc

 function mkdcd () {
     mkdir "$1" && cd "$1"
 }

然后键入mkdcd foodir在交互shell

所以,严格意义上,你想达到什么不含有一些壳的功能是不可能的&& (或至少一个; )......换句话说,演习的目的是让你明白为什么函数(或别名)是有用的在外壳....

PS它应该是一个函数,而不是一个脚本(如果它是一个脚本,该cd将只影响[子] shell中运行脚本,而不是互动父shell); 它是不可能使一个命令或可执行文件(不是shell功能),这将改变调用交互父shell的目录(因为每个进程都有自己的当前目录,你只能改变自己的进程的当前目录,不调用shell过程)。

PPS。 POSIX的炮弹,你应该删除function的关键字,并且有第一线mkdcd() {



Answer 3:

哦,我-zsh的用户: take 'directory_name'
参考: 官方OH-MY-zsh的GitHub的维基



Answer 4:

把下面的到你的.bash_profile(或同等学历)会给你一个mkcd命令会做你需要的东西:

# mkdir, cd into it
mkcd () {
    mkdir -p "$*"
    cd "$*"
}

这篇文章介绍比较详细



Answer 5:

我不认为这是可能的,但所有的人知道什么是做到这一点(我知道的),它不要求你创建自己的剧本是最简单的方法:

mkdir /myNewDir/
cd !$

这样,您就不需要写新目录的名称两次。

!$检索最后一个( $最后一个命令的)参数( ! )。

(有这样的更加有用的快捷键,如!!!*!startOfACommandInHistory 。搜索在网上获取更多信息)

可悲mkdir /myNewDir/ && cd !$不工作:读最后前面的命令,而不是最后一个论点mkdir命令。



Answer 6:

也许我没有完全理解的问题,但

>mkdir temp ; cd temp

使临时目录,然后更改到该目录中。



Answer 7:

mkdir temp ; cd temp ; mv ../temp ../myname

您可以别名是这样的:

alias mkcd 'mkdir temp ; cd temp ; mv ../temp ../'


Answer 8:

也许你可以使用一些shell脚本。

在shell脚本第一行会创建目录和第二线将改为创建的目录。



文章来源: One command to create and change directory