名前 | 形式 | 機能説明 | オペランド | 出力 | 環境 | 終了ステータス | 属性 | 関連項目
/usr/bin/cd [directory]
cd [argument]
chdir [argument]
cd [dir]
chdir [dir]
pushd [+ | n | dir]
popd [+ n]
dirs [-l]
cd [-L] [-P] [arg]
cd old new
/usr/bin/cd ユーティリティは、cd ユーティリティ自身だけの現在のディレクトリを変更します。これは、後述するシェル組み込みの cd とは対照的です。/usr/bin/cd はプロセスの呼び出しには影響しませんが、あるディレクトリを現在のディレクトリとして設定できるかどうかを決定するのに使用できます。
Bourne シェルに組み込まれている cd は、現在のディレクトリを argument で指定されたディレクトリに変更します。シェル変数 HOME の値がデフォルトの argument になります。シェル変数 CDPATH は、argument を含むディレクトリの検索パスを定義します。代替ディレクトリ名は、コロン (:) で区切ります。デフォルトのパスは空の文字列です (現在のディレクトリの指定)。 なお、現在のディレクトリは空のパス名で指定します。このパス名は、等号の直後か、 パスリスト内にある区切り文字のコロンの間に指定します。argument の先頭文字が / 、 . 、または . . の場合、検索パスは使用しません。それ以外の場合は、パス中の各ディレクトリで argument を検索します。 cd は、argument 中で実行 (検索) 権を持っていなければなりません。コマンドを実行するたびに新しいプロセスが生成されるため、cd を通常のコマンドとして実装した場合は効率が悪くなります。そのため、cd コマンドは、シェルに組み込まれています。 ( pwd(1) 、sh(1) 、chdir(2) を参照)
chdir は、cd を呼び出すもうひとつの方法です。
dir 引数を省略すると、C シェルに組み込まれている cd は、シェル変数 HOME の値を新たな作業用ディレクトリとして 使用します。dir を指定した場合、それが / 、 . 、または . . で始まる完全なパス名であれば、その dir が新たな作業用ディレクトリとなります。それ以外の場合は、シェル変数 CDPATH が指定するパスと相対関係を持つディレクトリの中から 該当するものを探し出します。 CDPATH の構文は PATH シェル変数と同一で、セマンティクスも似ています。cd は dir に対する実行 (検索) 権を持っていなければなりません。コマンドを実行するたびに新しいプロセスが生成されるため、cd を通常のコマンドとして実装した場合は、効率が悪くなります。そのため、cd コマンドは、C シェルに組み込まれています。 詳しくは pwd(1) 、sh(1) 、chdir(2) を参照してください。
chdir はシェルの作業用ディレクトリを dir が示すディレクトリに変更します。引数を指定しないと、そのユーザーのホームディレクトリに変更します。dir が現在のディレクトリからは見つからない相対パス名の場合、変数 cdpath 内のディレクトリリストを検索します。dir が / で始まる値を持つシェル変数の名前である場合、その変数の値が示すディレクトリに変更します。
pushd はディレクトリスタックにディレクトリをプッシュ ( 押し込む ) します。引数を指定しないと、スタックにある先頭の 2 つの構成要素を交換します。
n 番目のエントリがスタックの先頭になるよう回転し、 そのディレクトリに移ります。
現在の作業用ディレクトリをスタックにプッシュし、そのディレクトリに移ります。
popd はディレクトリスタックからポップして (取り出して)、新たに先頭となったディレクトリへ cd します。ディレクトリスタックの構成要素は先頭を 0 番目として数えます。
スタック内の n 番目のエントリを破棄します。
dirs はディレクトリスタックを出力します。現在のディレクトリが最も左に現れるように 時間順に出力されます。-l 引数を指定すると、~ を使った省略形ではなく、完全な形式で出力されます。
Korn シェルに組み込まれた cd コマンドは、上記 2 つの形式の いずれかで入力します。第 1 の形式は、現在のディレクトリを arg に変更します。arg が – の場合、ディレクトリを直前のディレクトリに変更します。 シェル変数 HOME の値がデフォルトの arg になります。PWD 環境変数は、現在のディレクトリに設定されます。PWD が変更された場合、OLDPWD 環境変数も古い作業用ディレクトリに変更されます。つまり、cd を呼び出す直前における現在の作業用ディレクトリのことです。シェル変数 CDPATH は、arg を含むディレクトリの検索パスを定義します。 ディレクトリ名は、コロン ( :) で区切ります。デフォルトのパスは 空の文字列です (現在のディレクトリの指定)。なお、現在のディレクトリは空のパス名で指定します。このパス名は、等号の直後か、パスリスト内にある区切り文字のコロンの間に指定します。 arg の先頭文字が / 、 . 、または . . の場合、検索パスは使用しません。それ以外の場合は、 パス中の各ディレクトリで arg を検索します。成功しなかった場合、cd は、PWD の値、スラッシュ文字、および arg を連結したパス名のディレクトリへ変更しようとします。
オペランドのドットドット (..) を論理的に処理します。ドットドット部分が処理される前に、シンボリックリンク部分は解釈処理されません。
オペランドのドットドット (..) を物理的に処理します。ドットドット部分が処理される前に、シンボリックリンク部分は解釈処理されます。
-L と -P の両方のオプションを指定した場合、最後に呼び出された方のオプションが使用され、他方のオプションは無視されます。-L オプションと -P オプションをどちらも指定しない場合、オペランドのドットドット (..) は論理的に処理されます。
cd の第 2 の形式は、PWD 中の現在のディレクトリ名における old という文字列を new という文字列に置換し、この新規のディレクトリへ変更しようとします。cd コマンドは rksh では実行できません。コマンドを実行するたびに新しいプロセスが生成されるため、cd を通常のコマンドとして実装した場合は、効率が悪くなります。
そのため、cd コマンドは、ksh に組み込まれています。 詳しくは pwd(1) 、sh(1) 、chdir(2) を参照してください。
以下のオペランドを指定できます。
新たな作業用ディレクトリとなるディレクトリの絶対または相対パス名。cd が相対パス名をどのように解釈するかは、環境変数 CDPATH の設定により異なります。
CDPATH に設定されている空でないディレクトリ名が用いられる場合、新たな作業用ディレクトリの絶対パス名が 以下のような形式で標準出力に出力されます。
"%s\ ", <new directory> |
それ以外の場合には、何も出力されません。
cd の実行に影響を与える環境変数 LC_CTYPE、LC_MESSAGES、NLSPATH についての詳細は、environ(5) を参照してください。
コロンで区切られた、ディレクトリを示すパス名のリスト。directory オペランドの先頭文字がスラッシュ (/) でなく、先頭部分が . でも .. でもない場合には、cd はこのリスト内のパス名を順番に検索し、環境変数 CDPATH に指定されている名前のディレクトリから directory を探します。その結果、最初に見つかったディレクトリ名が 新たな作業用ディレクトリとなります。ディレクトリのパス名として空の文字列を指定すると、 それは現在のディレクトリと見なされます。CDPATH は、設定されていないときには空の文字列として扱われます。
directory オペランドが省略されたときに用いるホームディレクトリの名前
現在の作業用ディレクトリのパス名。 この変数は、そのディレクトリに移った後に cd により設定されます。
次の属性については attributes(5) のマニュアルページを参照してください。
属性タイプ |
属性値 |
---|---|
インターフェースの安定性 |
標準 |
使用条件 |
SUNWcsu |