如何mkdir并切换到一行中的新目录

时间:2013-04-28 09:52:28

标签: function shell mkdir

我一直在使用linux控制台一段时间了。让我恼火的一件事是,每次使用mkdir创建新目录时,我都必须cd更改它。是否有一个命令解决方案来创建和切换到刚刚创建的目录?

现在我做:

mkdir php5
cd php5
我可以这样做:

mkdir -someswitch php5

我想要一些简单而干净的东西。一个很好的例子是git branch somebranch,它创建了新的分支,git checkout -b somebranch生成并切换到新的分支。

7 个答案:

答案 0 :(得分:6)

执行此操作的可移植方式是使用shell函数 - 而不是bash函数(使用像function这样的bashims)。将其放在相关的.profile中以供交互式使用:

 mkdir () {
    case $1 in
       (-c) command mkdir -p "$2" && cd "$2";;
       (*)  command mkdir "$@";;
    esac
 }

这会将-c选项添加到mkdir以供交互使用。没有-c,实用程序就像往常一样.-并注意"$2"的引用,这样就可以使用名称中带有空格的目录。

答案 1 :(得分:3)

没有什么可以阻止您创建自己的别名或小脚本

mkdir $1 && cd $1

答案 2 :(得分:2)

或者你可以使用';'分开命令,例如:

  

mkdir php5.3; cd php5.3

答案 3 :(得分:0)

您可以在bash中定义一个函数来执行此操作:

function mkcd() {
    mkdir $1 && eval cd $1
}

答案 4 :(得分:0)

一个很有帮助的答案。打字很容易。

 mkdir php7 && cd !$ 

答案 5 :(得分:0)

发现了一些魔力:

<Login.Screen 
  name="Login"
  component={LoginScreen}
  options={{
    headerStyle: {
      backgroundColor: 'red',
    }
  }}
/>

答案 6 :(得分:0)

这是我一直在使用的,不确定它是否符合最佳实践,但它有效。

function mk() {
    $file = $args[0]
    mkdir $file | cd
}