#ぷるがしメモ

趣味とかプログラミングとか色々

cd ../../../../../が嫌いな人向け

Motivation

プロジェクトが大きくなるにつれディレクトリ構造は深くなっていきがち。 (深くなる前にプロジェクトを分割しろ,構造考えなおせって話なんやけども)

上の階層に戻るために../../../../../をひたすら打つのが苦痛だから、 それっぽくスマートに上位ディレクトリに戻れるようにcdコマンドにエイリアスを貼って対処した。

How to use

cdコマンドの引数として数字を単体で与えるとその数字だけ上位ディレクトリに移動する。 $ cd 3 == $ cd ../../../

$ pwd
/home/ripple/project/src/common/test

$ cd 3

$ pwd
/home/ripple/project

Code

  • $HOME/.bashrc
isNum() { 
  if [ $# -ne 1 ]; then
    return 1
  fi
  expr "$1" + 1 >/dev/null 2>&1
  if [ $? -ge 2 ]; then
    return 1
  fi
  return 0
}

dirUp () {
  hierarchy_path=""
  isNum "$@"
  if [ $? -eq 0 ]; then
    for i in `seq 1 $1`
      do
        hierarchy_path=${hierarchy_path}"../"
      done
      \cd $hierarchy_path
  else
    \cd "$@"
  fi
}

alias cd="dirUp"

Description

わからないところ個別に聞いてください。 Twitter: @Ripple_apple

Q&A

  1. ディレクトリ名が数字のディレクトリに移動したいときはどうする?
  2. クソみたいなディレクトリ名つけてんじゃねえ。renameしろ。

引数の個数が1個、かつ数字の時のみ適用する仕様にしてるから、

$ cd 3 hoge

みたいな感じで2個目の意味のない引数を与えてあげえれば[3]ディレクトリに移動できる。