Go to main content

マニュアルページ セクション 1: ユーザーコマンド

印刷ビューの終了

更新: 2018年8月8日
 
 

cd(1)

名前

cd, chdir, pushd, popd, dirs - 現在の作業用ディレクトリの変更

形式

/usr/bin/cd [directory]

sh

cd [argument]
chdir [argument]

csh

cd [dir]
chdir [dir]
pushd [+n | dir]
popd [+n]
dirs [-l]

ksh88、ksh

cd [-L] [-P] [arg]
cd old new

説明

/usr/bin/cd

/usr/bin/cd ユーティリティーは、cd ユーティリティー自身だけの現在のディレクトリを変更します。これは、後述するシェル組み込みの cd とは対照的です。/usr/bin/cd はプロセスの呼び出しには影響しませんが、あるディレクトリを現在のディレクトリとして設定できるかどうかを決定するのに使用できます。

sh

Bourne シェルに組み込まれている cd は、現在のディレクトリを argument で指定されたディレクトリに変更します。シェルパラメータ HOME は、argument のデフォルト値です。シェルパラメータ CDPATH は、argument を含むディレクトリの検索パスを定義します。2 つのディレクトリ名は、コロン (:) で区切ります。デフォルトのパスは空の文字列です (現在のディレクトリの指定)。現在のディレクトリは空のパス名で指定します。このパス名は、等号の直後か、パスリスト内にある区切り文字のコロンの間に指定します。argument の先頭文字が /.. . の場合、検索パスは使用しません。それ以外の場合は、パス中の各ディレクトリで argument を検索します。cd は、argument 中で実行 (検索) 権を持っていなければなりません。コマンドを実行するたびに新しいプロセスが生成されるため、cd を通常のコマンドとして実装した場合は効率が悪くなります。そのため、cd コマンドは、シェルに組み込まれています。(pwd(1)sh(1)chdir(2) を参照)

chdir は、cd を呼び出すもうひとつの方法です。

csh

dir 引数を指定しない場合、 C シェルに組み込まれている cd は、シェル変数 HOME の値を新たな作業用ディレクトリとして使用します。dir を指定した場合、それが /.、または . . で始まる完全なパス名であれば、その dir が新たな作業ディレクトリとなります。それ以外の場合は、シェル変数 CDPATH が指定するパスと相対関係を持つディレクトリの中から該当するものを探し出します。CDPATH の構文は PATH シェル変数と同一で、セマンティクスも似ています。cddir に対する実行 (検索) 権を持っていなければなりません。コマンドを実行するたびに新しいプロセスが生成されるため、cd を通常のコマンドとして実装した場合は、効率が悪くなります。そのため、cd コマンドは、C シェルに組み込まれています。(pwd(1)sh(1)chdir(2) を参照)

chdir はシェルの作業用ディレクトリを dir が示すディレクトリに変更します。引数を指定しないと、そのユーザーのホームディレクトリに変更します。dir が現在のディレクトリには見つからない相対パス名の場合、変数 cdpath 内のディレクトリリストを検索します。dir/ で始まる値を持つシェル変数の名前である場合、その変数の値が示すディレクトリに変更します。

pushd はディレクトリスタックにディレクトリをプッシュ (押し込む) します。引数を指定しないと、トップの 2 つの構成要素を交換します。

+n

n 番目のエントリとトップスタックを交換しそれに cd します。

dir

現在の作業用ディレクトリをスタックにプッシュし、dir を新たな作業用ディレクトリとします。

popd はディレクトリスタックからポップして (取り出して)、新たに先頭となったディレクトリへ cd します。ディレクトリスタックの構成要素は、トップディレクトリを 0 として番号付けられます。

+n

スタック内の n 番目のエントリを破棄します。

dirs はディレクトリスタックを出力します。現在のディレクトリが最も左に現れるように時間順に出力されます。–l 引数を指定すると、~ を使った省略形ではなく、完全な形式で出力されます。

ksh88、ksh

Korn シェルに組み込まれた cd コマンドは、前述の 2 つの形式のいずれかで入力します。第 1 の形式は、現在のディレクトリを arg に変更します。arg の場合、ディレクトリを直前のディレクトリに変更します。シェル変数 HOME の値がデフォルトの arg になります。PWD 環境変数は、現在のディレクトリに設定されます。PWD が変更された場合、OLDPWD 環境変数も古い作業用ディレクトリに変更されます。つまり、cd を呼び出す直前における現在の作業用ディレクトリのことです。シェル変数 CDPATH は、arg を含むディレクトリの検索パスを定義します。2 つのディレクトリ名は、コロン (:) で区切ります。デフォルトのパスは空の文字列です (現在のディレクトリの指定)。現在のディレクトリは空のパス名で指定します。このパス名は、等号の直後か、パスリスト内にある区切り文字のコロンの間に指定します。arg の先頭文字が /.、または . . の場合、検索パスは使用しません。それ以外の場合は、パス中の各ディレクトリで arg を検索します。成功しなかった場合、cd は、PWD の値、スラッシュ文字、および arg を連結したパス名のディレクトリへ変更しようとします。

–L

オペランドのドットドット (..) を論理的に処理します。ドットドット部分が処理される前に、シンボリックリンク部分は解釈処理されません。

–P

オペランドのドットドット (..) を物理的に処理します。ドットドット部分が処理される前に、シンボリックリンク部分は解釈処理されます。

–L–P の両方のオプションを指定した場合、最後に呼び出された方のオプションが使用され、他方のオプションは無視されます。–L オプションと –P オプションをどちらも指定しない場合、オペランドのドットドット (..) は論理的に処理されます。

cd の第 2 の形式は、PWD 中の現在のディレクトリ名における old という文字列を new という文字列に置換し、この新規のディレクトリへ変更しようとします。

cd コマンドは rksh では実行できません。コマンドを実行するたびに新しいプロセスが生成されるため、cd を通常のコマンドとして実装した場合は、効率が悪くなります。そのため、cd コマンドは、ksh に組み込まれています。(pwd(1)sh(1)chdir(2) を参照)

オペランド

次のオペランドがサポートされています。

directory

新たな作業用ディレクトリとなるディレクトリの絶対または相対パス名。cd が相対パス名をどのように解釈するかは、環境変数 CDPATH の設定により異なります。

出力

CDPATH に設定されている空でないディレクトリ名が用いられる場合、新たな作業用ディレクトリの絶対パス名が以下のような形式で標準出力に出力されます。

"%s\n", <new directory>

それ以外の場合には、何も出力されません。

環境変数

cd の実行に影響を与える次の環境変数についての詳細は、environ(7) を参照してください。LANG、LC_ALL、LC_CTYPE、LC_MESSAGES、および NLSPATH。

CDPATH

コロンで区切られた、ディレクトリを示すパス名のリスト。directory オペランドの先頭文字がスラッシュ (/) でなく、先頭部分がドットでもドットドットでもない場合には、cd はこのリスト内のパス名を順番に検索し、環境変数 CDPATH に指定されている名前のディレクトリから directory を探します。その結果、最初に見つかったディレクトリ名が新たな作業用ディレクトリとなります。ディレクトリのパス名として空の文字列を指定すると、それは現在のディレクトリと見なされます。CDPATH は、設定されていないときには空の文字列として扱われます。

HOME

directory オペランドが省略されたときに用いるホームディレクトリの名前

OLDPWD

直前の作業用ディレクトリのパス名。この変数は、cd- で使用されます。

PWD

現在の作業用ディレクトリのパス名。この変数は、そのディレクトリに移った後に cd により設定されます。

終了ステータス

cd により、次の終了値が返されます。

0

ディレクトリが正常に変更されました。

>0

エラーが発生しました。

属性

属性についての詳細は、マニュアルページの attributes(7) を参照してください。

csh、ksh88、sh

属性タイプ
属性値
使用条件
system/core-os
インタフェースの安定性
確実
標準
standards(7) を参照してください。

ksh

属性タイプ
属性値
使用条件
system/core-os
インタフェースの安定性
不確実

関連項目

csh(1), ksh(1), ksh88(1), pwd(1), sh(1), chdir(2), attributes(7), environ(7), standards(7)