Hatena::Groupsubtech

#生存戦略 、それは

-> 08 { 06 / 04 }

適当なファイルが置いてある親ディレクトに移動する zsh 関数

15:49 | はてなブックマーク - 適当なファイルが置いてある親ディレクトに移動する zsh 関数 - #生存戦略 、それは

RAILS_ROOT 以下で作業をしてると RAILS_ROOT に戻りたい事ってあるあるある。

  1. RAILS_ROOT には Rakefile がある
  2. 他のディレクトリは(プラグインを除き)Rakefile が無い

という訳で、Rakefile をたどって見つけたディレクトリに cd する zsh スクリプトを書いたら便利だった。他の gem なライブラリもたいてい Rakefile があるので利用できるしね。

cdf という名前で汎用化。cdf .vim (上位の .vim があるディレクトリまで移動)とかできる。

function cdf() {
  local -a tmpparent; tmpparent=""
  local -a filename; filename="${1}"
  local -a file
  local -a num; num=0
  while [ $num -le 10 ]; do
    tmpparent="${tmpparent}../"
    file="${tmpparent}${filename}"
    if [ -f "${file}" ] || [ -d "${file}" ]; then
      cd ${tmpparent}
      break
    fi
    num=$(($num + 1))
  done
}

function cdrake() {
  cdf "Rakefile"
}

gabagaba2008/06/04 17:32cdfいいすね。ライフチェンジングまくり。
-f が二つあるけど、片方は -d でいいんでしょうか。

secondlifesecondlife2008/06/04 17:55あ、ほんとだ。片方は -d ですね。指摘ども~

トラックバック - http://subtech.g.hatena.ne.jp/secondlife/20080604