cd コマンド

目次

概要

cd - ディレクトリを移動する

コマンドライン

cd [-L|[-P [-e]] [-@]] [dir]

対象バージョン

説明

指定したディレクトリに移動

カレントディレクトリを dir に変更します。

$ cd /tmp             # /tmp に移動する

親ディレクトリに移動(..)

.. はひとつ上の階層のディレクトリを示します。

$ cd /usr/local/bin   # /usr/local/bin に移動する
$ cd ..               # /usr/local に移動する

ホームディレクトリに移動(~)

dir を省略すると、ホームディレクトリに移動します。

$ cd                  # ホームディレクトリに移動する

~ は自分自身のホームディレクトリを意味します。(引数を省略した場合と同じ動作)

$ cd ~                # ホームディレクトリに移動する

~useruser のホームディレクトリを意味します。

$ cd ~yamada          # yamada ユーザーのホームディレクトリに移動する

ひとつ前のディレクトリに移動(OLDPWD)

dir- を指定すると、環境変数 OLDPWD に格納されているひとつ前のディレクトリに移動します。

$ cd /tmp             # /tmp に移動
$ cd /var             # /var に移動
$ cd -                # ひとつ前の /tmp に移動

検索で見つかったディレクトリに移動(CDPATH)

環境変数 CDPATH にパス名をコロン(:)区切りで指定しておくと、dir がカレントディレクトリに見つからない場合、CDPATH で指定されたパス名配下を順番に探して最初に見つかったディレクトリに移動します。下記の例ではカレントディレクトリに html フォルダが見つからない場合、/var/www/html/usr/local/www/html ディレクトリを探して移動します。

$ export CDPATH=/var/www:/usr/local/www
$ cd html
/var/www/html

環境変数で指定したディレクトリに移動(cdable_vars)

シェルの cdable_vars オプションが有効で dir がカレントディレクトリに見つからない場合、dir を環境変数とみなし、その環境変数の値が示すディレクトリに移動します。

$ shopt -s cdable_vars             # cdable_vars オプションを有効化
$ export myproj=/usr/local/myproj  # 環境変数を設定
$ cd myproj                        # /usr/local/myproj に移動
/usr/local/myproj

シンボリックリンクの物理移動と論理移動(physical)

シェルオプションの physical はシンボリックリンクを移動する際に、物理移動するか、論理移動するかを指定します。物理移動の場合、シンボリックリンクを考慮しない物理的パスに移動します。論理移動の場合シンボリックリンクを考慮した論理的パスに移動します。

$ ln -s /usr/local/bin ~/bin  # シンボリックリンクを張る

$ set -o physical             # physicalオプションを設定
$ cd ~/bin                    # 物理移動
$ pwd
/usr/local/bin

$ set +o physical             # physicalオプションを解除
$ cd ~/bin                    # 論理移動
$ pwd
/home/yamada/bin

オプション

-L
シェルの physical オプションに関わらず論理移動します。
-P
シェルの physical オプションに関わらず物理移動します。
-e
-P と共に使用し、ディレクトリ移動後、カレントディレクトリの物理パス名を取得できない場合にエラー(0以外の値)を返します。
-@
Linux ではあまり利用されていません。拡張属性をサポートするシステムで使用されます。