# Dirs 組込みコマンド

Dirs 組込みコマンドはディレクトリスタックの内容を表示します。

## 構文

- `dirs [-cv] [インデックス..]`

## 説明

ディレクトリスタックとは、作業ディレクトリの変更の履歴をとる仕組みです。​Pushd コマンドで作業ディレクトリを変更すると、元の作業ディレクトリがディレクトリスタックに追加されます。​Popd コマンドを使うと、ディレクトリスタックに保存してある元の作業ディレクトリに戻ることができます。Dirs コマンドを使うと、ディレクトリスタックの内容を表示することができます。ディレクトリスタックの内容は `DIRSTACK` 配列と `PWD` 変数に保存されます。これらの値を変更すると、ディレクトリスタックの動作に影響します。

ディレクトリスタックに保存してあるディレクトリはインデックスで区別します。インデックスは `-v` (`--verbose`) オプションを付けて dirs コマンドを実行することで知ることができます。インデックスは正号 (`+`) または負号 (`-`) の付いた整数の形で表わします。整数は pushd コマンドでディレクトリスタックに追加した順に振られます。例えばインデックス `+0` は現在の作業ディレクトリに対応します。インデックス `+1` は最後に追加したディレクトリで、インデックス `+2` はその一つ前に追加したディレクトリに対応します。インデックス `-0` は最初に 追加したディレクトリ、インデックス `-1` はその次に追加したディレクトリに対応します。

`-c` (`--clear`) オプションを付けずに実行すると、dirs コマンドは現在のディレクトリスタックの要素を一つずつ標準出力に出力します。 `-c` (`--clear`) オプションを付けて実行すると、dirs コマンドはディレクトリスタックのインデックス `+0` 以外の要素をすべて削除します。

## オプション

`-c`
`--clear`

  ディレクトリスタックの要素を (現在の作業ディレクトリに対応するものを除いて) すべて削除します。

`-v`
`--verbose`

  ディレクトリスタックの要素のインデックスも出力します。

## オペランド

インデックス

  表示するディレクトリスタックの要素のインデックスです。インデックスを一つも指定しないときは、全ての要素をインデックス `+0` のものから順に表示します。

## 終了ステータス

エラーがない限り dirs コマンドの終了ステータスは 0 です。

## 補足

Dirs コマンドは​任意組込みコマンドです。 POSIX では dirs コマンドの動作は規定されていません。 このコマンドは POSIX 準拠モードでは使えません。