# Pushd 組込みコマンド

Pushd 組込みコマンドはディレクトリスタックにディレクトリを追加し、シェルの作業ディレクトリをそのディレクトリに変更します。

## 構文

- `pushd [-L|-P] [ディレクトリ]`

## 説明

Pushd コマンドは cd コマンドと同様に、シェルの作業ディレクトリをオペランドで指定したディレクトリに変更します。作業ディレクトリの変更に成功すると、新しい作業ディレクトリをディレクトリスタックに追加します。

## オプション

Cd コマンドで使えるオプションに加えて以下のオプションが pushd コマンドで使えます。

`--remove-duplicates`

  新しい作業ディレクトリが既にディレクトリスタックに入っている場合は、元々入っていた要素を削除して重複をなくします。

## オペランド

ディレクトリ

  新しい作業ディレクトリのパス名です。絶対パスまたは元の作業ディレクトリからの相対パスで指定します。

  この値がハイフン一つ (`-`) の場合、`OLDPWD` 変数の値が指定されたものとみなします。

  この値が符号付き整数の場合、その整数をディレクトリスタックの要素のインデックスとみなして、その要素が表すディレクトリが指定されたものとみなします (指定された要素はディレクトリスタックから削除されます)。

  このオペランドが与えられていない場合、インデックス `+1` が指定されたものとみなします (`--default-directory` オプションを指定した場合を除く)。

## 終了ステータス

作業ディレクトリを正しく変更しディレクトリスタックに追加できた場合、終了ステータスは 0 です。エラーがあると終了ステータスは非 0 です。

## 補足

Pushd コマンドは準特殊組込みコマンドです。 POSIX では pushd コマンドの動作は規定されていません。