Twitterでそんなのを見かけたので、そういやどうやんのかなと思ってちょっと調べてみた。 そもそも、cdで複数個上の階層のディレクトリに移動する場合、以下のように指定する。

cd ../../ # 2個上の階層
cd ../../../ # 3個上の階層

ただ、こんなのいちいち書いてられないので、もうちょっと分かりやすく書けないものか。 で、調べてみたところprintfをうまく利用することで、historyなどから再利用しやすく書けるようだ。

cd $(printf "%0.s../" {1..n})

[root@BS-PUB-CENT7-01 perf]# pwd
/usr/local/src/guacamole/0.9.10-incubating/mysql-connector-java-5.1.40/src/testsuite/perf
[root@BS-PUB-CENT7-01 perf]# cd $(printf "%0.s../" {1..3})
[root@BS-PUB-CENT7-01 mysql-connector-java-5.1.40]# pwd
/usr/local/src/guacamole/0.9.10-incubating/mysql-connector-java-5.1.40

ざっくりこんな感じだろうか。 ただ、どっちにしても使いやすいかと言われるとちょっとなぁ…。

もっといい方法がないものか。