Cd 組込みコマンド

Cd 組込みコマンドはシェルの作業ディレクトリを変更します。

構文

説明

Cd コマンドはシェルの作業ディレクトリをオペランドで指定したディレクトリに変更します。新しい作業ディレクトリに応じて PWD 変数の値が再設定されるとともに、前の PWD 変数の値が OLDPWD 変数に設定されます。

指定したディレクトリが相対パスの場合 (最初が . または .. で始まるものを除く)、コマンドの検索における PATH 変数の検索と同様にして、CDPATH 変数の値にあるコロンで区切った各ディレクトリ内に指定したディレクトリがあるかどうか調べます。ディレクトリが見つかった場合は、そのディレクトリが新しい作業ディレクトリになります。

CDPATH 変数の検索で新しい作業ディレクトリが見つかった場合またはディレクトリとして - が指定された場合は新しい作業ディレクトリのパスを標準出力に出力します。

作業ディレクトリの変更に成功した場合、YASH_AFTER_CD 変数が設定されていればその値がコマンドとして解釈・実行されます (非 POSIX 準拠モード時)。

オプション

-L, --logical
ディレクトリパスに含まれるシンボリックリンクを解決せずに新しい作業ディレクトリを決定します。新しい PWD 変数の値にはシンボリックリンクになっているパス名コンポーネントがそのまま残ります。
-P, --physical
ディレクトリパスに含まれるシンボリックリンクを解決します。新しい PWD 変数の値はシンボリックリンクを含みません。

-L (--logical) オプションと -P (--physical) オプションの両方を指定した場合、後に指定したほうを優先します。どちらも指定していない場合は、-L を指定したものとみなします。

オペランド

ディレクトリ
新しい作業ディレクトリのパス名です。絶対パスまたは元の作業ディレクトリからの相対パスで指定します。この値がハイフン一つ (-) の場合、OLDPWD 変数の値が指定されたものとみなします。このオペランドが与えられていない場合、HOME 変数の値が指定されたものとみなします。

終了ステータス

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

補足

Cd コマンドは準特殊組込みコマンドです。

POSIX には YASH_AFTER_CD 変数に関する規定はありません。POSIX はディレクトリとしてハイフン一つを指定したときに -L または -P オプションを併用することを認めていません。

YASH_AFTER_CD 変数の値の実行結果の終了ステータスは cd コマンドの終了ステータスに影響しません。