zを使ってみたよ

zというcdの履歴を管理してくれるコマンドがあるのを知りました。
合わせて、Tabでの補完等の時に先頭のパスが一致していなくても、後方のパスに一致していると補完してくれるものです。
普段cd -くらいしか使わないし、pushdやpopdも全然使ったことないので、これなら深い階層のディレクトリでも移動がラクチンだと思ってインストールしてみました。

インストール

リポジトリからzをクローンします。要Gitなり。wgetcurlアーカイブをダウンロードして展開してもいいかも。

$ git clone git://github.com/rupa/z.git $HOME/Binary/z

設定

読み込んであげないと使えないので、.bashrcに設定を書きます。

z=$HOME/Binary/z
if [ -d "$z" ]
then
  touch $HOME/.z
  source $z/z.sh
  precmd() {
    _z --add "$(pwd -P)"
  }
fi

使ってみる

これで深いところの階層などに行ってみると補完されます。

$ cd ~
$ mkdir -p a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/
$ cd a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/
$ cd ..
$ cd ..
$ z r

この状態でTabを押して補完させてみると……

$ z /home/sasaplus1/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/

となります。このままコマンドを実行すれば、そのディレクトリまで移動してくれます。


よくディレクトリを移動する人にとってはなかなか便利かもしれません。
ちなみに、zは割と打ちにくいですがこのコマンド名も設定を書いてあげれば変更出来るようです。


参考:
autojumpよりz.shのほうがPythonなしで動いて良いよ | この先生きのこるには