与CD有关的Functions()

下面说一种与alias差不多的function

  1. mkdir -p /tmp/subdir1/subdir2/subdir3
  2. mkdir: created directory ‘/tmp/subdir1
  3. mkdir: created directory ‘/tmp/subdir1/subdir2
  4. mkdir: created directory ‘/tmp/subdir1/subdir2/subdir3
  5. cd /tmp/subdir1/subdir2/subdir3
  6. pwd
  7. /tmp/subdir1/subdir2/subdir3

是不是又有点烦?

下面就让function来解救你吧~

  1. function mcd () {
  2. mkdir -p "$@" && eval cd "\"\$$#\"";
  3. }

然后,瞧好了:

  1. mcd /tmp/1/2/3/4/5/6/7
  2. mkdir: created directory ‘/tmp/1
  3. mkdir: created directory ‘/tmp/1/2
  4. mkdir: created directory ‘/tmp/1/2/3
  5. mkdir: created directory ‘/tmp/1/2/3/4
  6. mkdir: created directory ‘/tmp/1/2/3/4/5
  7. mkdir: created directory ‘/tmp/1/2/3/4/5/6
  8. mkdir: created directory ‘/tmp/1/2/3/4/5/6/7
  9. pwd
  10. /tmp/1/2/3/4/5/6/7

为什么会这样呢?这是因为我们在当前环境下新建了一个function,这个function的功能就是新建目录,然后进入我们新建的目录。

当然,这应该是最简单的function了吧,把一堆常用的function写入你的.bashrc里面,会让你很舒服的。

同样,我的一些常用function也在github上面,跟alias是放一块儿的哦。