ディレクトリ2

ディレクトリ間の移動

ディレクトリの構成が複雑になってきた時、各ディレクトリの間をいったりきたりするのが面倒になってくる。 そのような時に、なるべく簡単にすばやくディレクトリ間を移動するにはcdの代わりに以下のコマンドを使用する。

    pushd
    スタックの一番上にパスを追加する。
    popd
    スタックの一番上からパスを削除する。
    dirs
    スタックの内容を表示。
    cd -
    直前にいたディレクトリにもどる。

これらのコマンドを使用すると、=によってファイルなどのコピー・移動を簡単に行なうことができるようになる。
つまり=の後にスタック番号をつけると、そのスタックに入っているディレクトリを表すことができるので、いちいち長いパス名を入力する必要が無くなる。

スタックとは

ここでスタックとはパス名をいれておくための底のある入れもの(バケツのようなもの)と思えば良い。

  1. 最初は現在のディレクトリを表すパス名が底に入っている。
  2. pushd dir2でパス名(dir2)をスタックに入れると、それはスタックの底にある現在のディレクトリの上に積まれる。
    そして、スタックの1番上にあるパス(dir2)が現在のディレクトリになる。
  3. その後で、もう一度pushd dir3で別のパス名(dir3)をスタックに入れると、そのパス名がスタックの上に積まれる。 (現在のディレクトリはdir3)
  4. pushdだけを実行すると、スタックの上から1番目と2番目が入れ換えられる。 (現在のディレクトリはdir2)
  5. popdを実行すると、スタックの1番上にあるパスが除かれる。 (現在のディレクトリはdir3)

使用例

以下の例にでてくる ~ はホームディレクトリを表す。

% pwd
/amt/home0/ad000000
% cd kadai1/kadai1-1
% pwd
/amt/home0/ad000000/unix/kadai1/kadai1-1
% dirs
/amt/home0/ad000000/unix/kadai1/kadai1-1      ← スタックには一つディレクトリが入っている
% pushd ~/unix/kadai2/kadai2-2     ← 二つ目のディレクトリをスタックに入れる
/amt/home0/ad000000/unix/kadai2/kadai2-2 /amt/home0/ad000000/unix/kadai1/kadai1-1
% dirs
/amt/home0/ad000000/unix/kadai2/kadai2-2 /amt/home0/ad000000/unix/kadai1/kadai1-1    ← スタックには二つディレクトリが入っている
% pushd            ← 一つ目のディレクトリに移動
/amt/home0/ad000000/unix/kadai1/kadai1-1 /amt/home0/ad000000/unix/kadai2/kadai2-2
% pwd
/amt/home0/ad000000/unix/kadai1/kadai1-1
% pushd            ← 二つ目のディレクトリに移動
/amt/home0/ad000000/unix/kadai2/kadai2-2 /amt/home0/ad000000/unix/kadai1/kadai1-1
% pwd
/amt/home0/ad000000/unix/kadai2/kadai2-2
% pushd ~          ← 三つ目のディレクトリとしてホームディレクトリを入れる
/amt/home0/ad000000 /amt/home0/ad000000/unix/kadai2/kadai2-2 /amt/home0/ad000000/unix/kadai1/kadai1-1
% dirs
/amt/home0/ad000000 /amt/home0/ad000000/unix/kadai2/kadai2-2 /amt/home0/ad000000/unix/kadai1/kadai1-1
% pushd
/amt/home0/ad000000/unix/kadai2/kadai2-2 /amt/home0/ad000000 /amt/home0/ad000000/unix/kadai1/kadai1-1
% pushd
/amt/home0/ad000000 /amt/home0/ad000000/unix/kadai2/kadai2-2 /amt/home0/ad000000/unix/kadai1/kadai1-1
% pushd +2         ← スタックの三番目にあるディレクトリに移動
/amt/home0/ad000000/unix/kadai1/kadai1-1 /amt/home0/ad000000 /amt/home0/ad000000/unix/kadai2/kadai2-2
% ls
data1-1
% cp data1-1 =2    ← data1-1をスタックの三番目にあるディレクトリ(/amt/home0/ad000000/unix/kadai2/kadai2-2)に移動
% pushd +2
/amt/home0/ad000000/unix/kadai2/kadai2-2 /amt/home0/ad000000/unix/kadai1/kadai1-1 /amt/home0/ad000000
% ls
data1-1 data2-2
% popd
/amt/home0/ad000000/unix/kadai1/kadai1-1 /amt/home0/ad000000
% popd
/amt/home0/ad000000
%

練習課題

参考


Prev | Next
Home | Contents
abe@injapan.net