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

構文

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

説明

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

オプション

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

--remove-duplicates

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

オペランド

ディレクトリ

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

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

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

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

終了ステータス

Pushd コマンドの終了ステータスは、​cd コマンドの終了ステータスに加えて以下の値があります。

  • DIRSTACK 変数が読み取り専用の場合は 1。

  • PWD 変数が未設定の場合は 4。

  • ディレクトリが符号付き整数であり、そのインデックスが範囲外の場合は 4。

  • ディレクトリおよび --default-directory=… オプションが指定されておらず、ディレクトリスタックが空の場合は 4。

補足

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