我在寻找只有一个命令-自认倒霉&&
或|
- 创建一个目录,然后立即改变当前目录切换到新创建的目录。 (这是一个问题的人得到了他的“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脚本第一行会创建目录和第二线将改为创建的目录。