Dirs 組込みコマンドはディレクトリスタックの内容を表示します。
dirs [-cv] [インデックス…]
-c (--clear) オプションを付けずに実行すると、dirs コマンドは現在のディレクトリスタックの要素を一つずつ標準出力に出力します。
-c (--clear) オプションを付けて実行すると、dirs コマンドはディレクトリスタックのインデックス +0 以外の要素をすべて削除します。
ディレクトリスタックとは、作業ディレクトリの変更の履歴をとる仕組みです。Pushd コマンドで作業ディレクトリを変更すると、元の作業ディレクトリがディレクトリスタックに追加されます。Popd コマンドを使うと、ディレクトリスタックに保存してある元の作業ディレクトリに戻ることができます。
ディレクトリスタックに保存してあるディレクトリはインデックスで区別します。インデックスは -v (--verbose) オプションを付けて dirs コマンドを実行することで知ることができます。インデックスは正号 (+) または負号 (-) の付いた整数の形で表わします。整数は pushd コマンドでディレクトリスタックに追加した順に振られます。例えばインデックス +0 は現在の作業ディレクトリに対応します。インデックス +1 は最後に追加したディレクトリで、インデックス +2 はその一つ前に追加したディレクトリに対応します。インデックス -0 は最初に 追加したディレクトリ、インデックス -1 はその次に追加したディレクトリに対応します。
-c, --clear
-v, --verbose
+0 のものから順に表示します。
エラーがない限り dirs コマンドの終了ステータスは 0 です。
ディレクトリスタックの要素は PWD 変数と DIRSTACK 配列変数に格納されます。これらの変数の値を書換えることで直接ディレクトリスタックの要素を変更できます。
POSIX には dirs コマンドに関する規定はありません。