N個上の階層に移動するコマンドを自作した話


cd .. って打つのが面倒

一つ上の階層に行くという、日常的に行う操作のために5文字もタイプしなければいけないのは無駄な感じがしませんか?
特に . が打ちづらくて、手がホームポジションからズレてしまいます。
また、3つ上の階層に行くとなると、 cd ../../.. と、更にタイプ数が増えてしまい、より面倒さが増します。

上の階層に移動するためのコマンド

というわけで関数を自作しました。

Setup

以下のスクリプトを .bashrc.zshrc に書いておくと使えます。

function up () {
    if [ $# -eq 0 ] ; then
        cd ..
    else
        for ((i=0; i < $1; i++))
        do
            cd ..
        done
    fi
}

Usage

up     # cd .. と同じ
up 3   # cd ../../.. と同じ

説明

  • 引数が指定されていなければ cd .. を行う
  • 引数が指定されていれば、その値の回数だけ cd .. を行う

というだけの関数です。

まとめ

僕がこの関数を使い始めてから、もうすぐ2年ほど経ちます。
cd ..up という二文字だけで実現できることで、こんなにも楽になるとは思いませんでした。
ただ、特に使うのは up だけなので、 alias up='cd ..' でもいいかもしれません。
しかし、普段学んでいる技術を使って、自分の生活を楽にするのはとても楽しいです。
みなさんも、楽するためのコマンドなどを作って、使い倒しましょう!