pushd コマンド

目次

概要

pushd - ディレクトリスタックにディレクトリを積む

コマンドライン

pushd [-n] [+N | -N | dir]

対象バージョン

説明

基本的な使い方

pushd を実行すると cd コマンドの様に引数で指定したディレクトリに移動し、移動前のディレクトリをディレクトリスタックに積みます。ディレクトリスタックは dirs コマンドで確認することができ、popd コマンドでスタックから現在のディレクトリを取り除き、ひとつまえのディレクトリに戻ることができます。一時的に他のディレクトリに移動して戻りたい時に有用です。

$ cd ~                       # ホームディレクトリに移動する
$ pushd /usr/local/lib       # 一時的に /usr/local/lib に移動する
$ popd                       # ひとつ前のディレクトリ(ホームディレクトリ)に戻る
$ cd ~                       # ホームディレクトリに移動する
$ pushd /tmp/dirA            # /tmp/dirA に移動する
/tmp/dirA ~
$ pushd /tmp/dirB            # /tmp/dirB に移動する
/tmp/dirB /tmp/dirA ~
$ dirs -v                    # 現在のディレクトリスタックを確認する
0  /tmp/dirB
1  /tmp/dirA
2  ~
$ popd                       # /tmp/dirA に戻る
/tmp/dirA ~
$ popd                       # ~ に戻る
~

スタック番号

dirs -v を実行するとスタック番号とスタックの内容が表示されます。0番は常にカレントディレクトリです。1番はひとつ前のディレクトリ、2番はもうひとつ前のディレクトリを意味します。

$ dirs -v
0 /tmp/dirD
1 /tmp/dirC
2 /tmp/dirB
3 /tmp/dirA

スタック番号を指定したディレクトリ移動

pushd +N を使用すると、スタックの順番は変わりますが、スタックからディレクトリを取り除くことなく、ディレクトリ移動することができます。例えば上記の状態で pushd +2 を実行すると、2番目のスタックディレクトリ /tmp/dirB に移動することができます。

$ popd +2
/tmp/dirB /tmp/dirA /tmp/dirD /tmp/dirC
$ dirs -v
 0  /tmp/dirB
 1  /tmp/dirA
 2  /tmp/dirD
 3  /tmp/dirC

オプション

-n
ディレクトリを移動せず、dir で指定したディレクトリをスタックの 1番に追加します。
+N
ディレクトリスタックの最初から N 番目のディレクトリに移動します。スタックは N 番目のディレクトリが 0番となるように全体がローテートされます。
-N
ディレクトリスタックの最後から N 番目のディレクトリに移動します。スタックは N 番目のディレクトリが 0番となるように全体がローテートされます。