Cd 組込みコマンドはシェルの作業ディレクトリを変更します。
cd [-LP] [ディレクトリ]
Cd コマンドはシェルの作業ディレクトリをオペランドで指定したディレクトリに変更します。新しい作業ディレクトリに応じて PWD
変数の値が再設定されるとともに、前の PWD
変数の値が OLDPWD
変数に設定されます。
指定したディレクトリが相対パスの場合 (最初が .
または ..
で始まるものを除く)、コマンドの検索における PATH
変数の検索と同様にして、CDPATH
変数の値にあるコロンで区切った各ディレクトリ内に指定したディレクトリがあるかどうか調べます。ディレクトリが見つかった場合は、そのディレクトリが新しい作業ディレクトリになります。
CDPATH
変数の検索で新しい作業ディレクトリが見つかった場合またはディレクトリとして -
が指定された場合は新しい作業ディレクトリのパスを標準出力に出力します。
作業ディレクトリの変更に成功した場合、YASH_AFTER_CD
変数が設定されていればその値がコマンドとして解釈・実行されます (非 POSIX 準拠モード時)。
-L
, --logical
PWD
変数の値にはシンボリックリンクになっているパス名コンポーネントがそのまま残ります。
-P
, --physical
PWD
変数の値はシンボリックリンクを含みません。
--default-directory=ディレクトリ
-L
(--logical
) オプションと -P
(--physical
) オプションの両方を指定した場合、後に指定したほうを優先します。どちらも指定していない場合は、-L
を指定したものとみなします。
-
) の場合、OLDPWD
変数の値が指定されたものとみなします。このオペランドが与えられていない場合、HOME
変数の値が指定されたものとみなします (--default-directory
オプションを指定した場合を除く)。
作業ディレクトリを正しく変更できた場合、終了ステータスは 0 です。エラーがあると終了ステータスは非 0 です。
Cd コマンドは準特殊組込みコマンドです。
POSIX には YASH_AFTER_CD
変数および --default-directory=...
オプションに関する規定はありません。POSIX はディレクトリとしてハイフン一つを指定したときに -L
または -P
オプションを併用することを認めていません。
YASH_AFTER_CD
変数の値の実行結果の終了ステータスは cd コマンドの終了ステータスに影響しません。