9.3.6 cdコマンド(カレントディレクトリを移動する)
形式1
cd [ディレクトリパス]
形式2
cd old new
機能
カレントディレクトリを移動します。移動先を指定する方法として2つの形式が使用できます。
1つ目の形式は,移動先のディレクトリパスを指定する方法です。CDPATH変数が定義されている場合は,定義された位置から移動するディレクトリを特定します。CDPATH変数が定義されていない場合は,カレントのディレクトリから移動するディレクトリを特定します。
2つ目の形式は,カレントディレクトリパス名に含まれる文字列の中で,oldと一致する文字列をnewに置き換えたディレクトリパスに移動します。
引数
- ディレクトリパス
移動するディレクトリパスを指定します。
ディレクトリパスを指定しなかった場合は,ユーザーのホームディレクトリ(HOME変数)に移動します。ディレクトリパスにハイフン(-)を指定した場合は,直前の作業ディレクトリ(OLDPWD変数)に移動します。
- old
カレントディレクトリパス名に含まれる文字列の中で,置換対象となる文字列を指定します。
- new
カレントディレクトリパス名に含まれる文字列oldに対して置換する文字列を指定します。
終了コード
終了コード |
意味 |
---|---|
0 |
正常終了 |
1 |
エラー終了 |
注意事項
Windowsの場合,cdコマンドを実行するとディレクトリ区切り文字は「/」から「\」に変換されます。
この正規組み込みコマンドは,コマンドの構文を誤ってもコマンドを実行しているシェルは終了しません。
HOME変数が定義されていない場合,引数を指定しないでcdコマンドを実行するとエラーになります。
ディレクトリパス名にUNC形式の名称は指定できません。
形式2でカレントディレクトリパス名に複数含まれる文字列を置換対象として指定した場合,最初の文字列だけが置換の対象になります。例を次に示します。
(例)カレントディレクトリパス名が/home/user/test/testの場合
cd test tmp
この場合,cdコマンドは/home/user/tmp/tmpではなく,/home/user/tmp/testに移動しようとします。
使用例
/var/logから/var/libに移動します。
ジョブ定義スクリプトの内容
pwd cd log lib pwd
実行ジョブのSTDOUTファイルの内容
******** 実行ジョブのSTDOUTファイルの内容 ******** /var/log /var/lib /var/lib