2012年12月17日月曜日

ディレクトリーを行ったり来たり

ディレクトリーを移動してまた元の場所に戻ってくるという操作を楽にしたいと思って、"pushd" コマンドを調べていましたが、"cd" で事足りました。
$ cd -
と、オプション "-" をつければ一つ前にいたディレクトリーに戻れます。
もう一度実行するとまた元の場所にもどります。
2カ所のディレクトリーで行ったり来たりできます。


"pushd" コマンドを使って移動していた場合は、もう少し自由に戻れます。
pushd コマンドで移動するとディレクトリースタックに移動前のディレクトリーがプッシュされていきます。
ディレクトリースタックの中身はコマンド "dirs" で確認できます。 "-v" オプションをつけると縦にリスト表示します。
$ dirs -v
0       /home
1       /dev
2       /sbin
3       /bin
4       /tmp
5       ~
ここで、移動したい番号を pushd のオプションとして次のように指定すると移動できます。 2番の /sbin に移動したいとすると、
$ pwd
/home
$ pushd +2
/sbin /bin /tmp ~ /home /dev
$ pwd
/sbin
ディレクトリースタックが増えすぎたら dirs -c でクリア。


実際には、ディレクトリーを移動しようと思った瞬間、脊髄反射的に "cd" と打ってしまいます。
でも pushd で移動しておかないとスタックに記録しないので、いざというときに pushd +2 などが使えません。

こんなとき、もし、zsh を使っているなら "autopushd" の設定を有効にしておけばよいです。
(autopushd は「cd したときにディレクトリースタックに pushd する」設定です。)
cd で移動しながらディレクトリースタックに記録できるようになります。