ディレクトリの構成が複雑になってきた時、各ディレクトリの間をいったりきたりするのが面倒になってくる。 そのような時に、なるべく簡単にすばやくディレクトリ間を移動するには cd の代わりにスタックを利用する以下のコマンドを使用すると良い。
これらのコマンドを使用すると、 = によってファイルなどのコピー・移動を簡単に行なうことができるようになる。
つまり = の後にスタック番号をつけると、そのスタックに入っているディレクトリを表すことができるので、いちいち長いパス名を入力する必要が無くなる。
ここでスタックとはパス名をいれておくための底のある入れもの(バケツのようなもの)と思えば良い。
前回の課題で作られた kadai1, kadai2, kadai1-1, ... などのディレクトリが存在するとして以下のようにコマンドを実行してみよう。
以下の例にでてくる ~ はホームディレクトリを表す。
% cd unix % pwd /amt/home0/ad010000/unix % cd kadai1/kadai1-1 % pwd /amt/home0/ad010000/unix/kadai1/kadai1-1 % dirs ~/unix/kadai1/kadai1-1 ← スタックには一つだけディレクトリが入っている % pushd ../../kadai2/kadai2-2 ← 二つ目のディレクトリをスタックに積む ~/unix/kadai2/kadai2-2 ~/unix/kadai1/kadai1-1 % dirs -v 0 ~/unix/kadai2/kadai2-2 ← スタックの一番上に積まれているディレクトリ 1 ~/unix/kadai1/kadai1-1 ← スタックの二番目に積まれているディレクトリ % pushd ← スタックの一番目と二番目を入れ換える ~/unix/kadai1/kadai1-1 ~/unix/kadai2/kadai2-2 % pwd /amt/home0/ad010000/unix/kadai1/kadai1-1 % pushd ← スタックの一番目と二番目を入れ換える ~/unix/kadai2/kadai2-2 ~/unix/kadai1/kadai1-1 % pwd /amt/home0/ad010000/unix/kadai2/kadai2-2 % pushd ~ ← 三つ目のディレクトリとしてホームディレクトリをスタックに積む ~ ~/unix/kadai2/kadai2-2 ~/unix/kadai1/kadai1-1 % dirs -v 0 ~ ← スタックの一番上に積まれているディレクトリ 1 ~/unix/kadai2/kadai2-2 ← スタックの二番目に積まれているディレクトリ 2 ~/unix/kadai1/kadai1-1 ← スタックの三番目に積まれているディレクトリ % cd unix/kadai1 % dirs -v 0 ~/unix/kadai1 1 ~/unix/kadai2/kadai2-2 2 ~/unix/kadai1/kadai1-1 % pushd ../kadai2 ~/unix/kadai2 ~/unix/kadai1 ~/unix/kadai2/kadai2-2 ~/unix/kadai1/kadai1-1 % dirs -v 0 ~/unix/kadai2 1 ~/unix/kadai1 2 ~/unix/kadai2/kadai2-2 3 ~/unix/kadai1/kadai1-1 % pushd +3 ← スタックの四番目に積まれているディレクトリに移動 ~/unix/kadai1/kadai1-1 ~/unix/kadai2 ~/unix/kadai1 ~/unix/kadai2/kadai2-2 % dirs -v 0 ~/unix/kadai1/kadai1-1 1 ~/unix/kadai2 2 ~/unix/kadai1 3 ~/unix/kadai2/kadai2-2 % ls data1-1 ← ~/unix/kadai1/kadai1-1 にあるファイル % cp data1-1 =3 ← data1-1をスタックの四番目にあるディレクトリ(~/unix/kadai2/kadai2-2)にコピー % pushd +3 ← スタックの四番目に積まれているディレクトリに移動 ~/unix/kadai2/kadai2-2 ~/unix/kadai1/kadai1-1 ~/unix/kadai2 ~/unix/kadai1 % dirs -v 0 ~/unix/kadai2/kadai2-2 1 ~/unix/kadai1/kadai1-1 2 ~/unix/kadai2 3 ~/unix/kadai1 % ls data1-1 data2-2 ← ~/unix/kadai2/kadai2-2 にあるファイル