Linux の cd コマンド は、指定したディレクトリに作業場所を移動(change directory)するためのコマンドです。
ファイル操作やログ確認など、ほとんどの作業は「どのディレクトリで実行しているか」が前提になるため、もっとも基本的で重要なコマンドのひとつです。
多くのシェル(bash など)では cd は組み込みコマンドとして実装されており、オプションや挙動はシェルの実装によって若干異なります。ここでは一般的な bash を前提にした使い方を紹介します。
cd [オプション] [ディレクトリ]
ディレクトリを省略した場合は、通常ホームディレクトリ($HOME)に移動します。
相対パス(../logs など)と絶対パス(/var/log など)のどちらも指定できます。
・指定したディレクトリに移動する(絶対パス)。
cd /var/log
もっとも基本的な使い方です。
先頭が / から始まるパスは絶対パスを表し、どのディレクトリにいても同じ場所に移動できます。
・相対パスでサブディレクトリに移動する。
cd logs
現在のディレクトリの中にある logs ディレクトリへ移動します。
相対パス(現在地からの相対的な位置)で指定する場合は、./logs と書いても同じ意味です。
・1 つ上の階層に戻る。
cd ..
.. は「1 つ上のディレクトリ」を表します。
何度も上に戻りたい場合は cd ../.. のように .. を重ねて指定します。
・ホームディレクトリに移動する(ユーザーの「家」に戻る)。
cdcd ~
引数なしの cd または cd ~ は、現在のユーザーのホームディレクトリに移動します。
深い階層で作業したあと、いったん自分のホームに戻りたいときによく使います。
・直前にいたディレクトリに戻る。
cd -
今いるディレクトリと、直前にいたディレクトリを行き来するショートカットです。
例えば /var/www/html と /etc の間を行ったり来たりしたいときに便利です。
・環境変数で定義したディレクトリに移動する。
export LOGDIR=/var/log/httpdcd "$LOGDIR"
よく使うディレクトリを環境変数(ここでは LOGDIR)に入れておき、
cd "$LOGDIR" でショートカットとして使うパターンです。
長いパスを毎回打ちたくない場合に、.bashrc などに定義しておくと便利です。
・シンボリックリンクをたどって移動する(論理パス・デフォルト動作)。
cd -L ./logs
bash の cd はデフォルトで -L(論理パス) の挙動になっており、
シンボリックリンクをたどってディレクトリを解決します。
明示的に -L を指定することもできますが、通常は省略して問題ありません。
・シンボリックリンクをたどらず、実体のパスに基づいて移動する。
cd -P ./logs
-P オプションを付けると、シンボリックリンクをたどらずに、実際のパス(物理パス)に基づいて移動します。
リンクが複雑に張られている環境で、「実際にどのディレクトリで作業しているか」を明確にしたい場面で使用します。
・本番サーバでの作業ディレクトリを確認しながら移動する
本番サーバ上で作業するときは、cd で移動したあとに pwd や ls で
「本当に意図したディレクトリにいるか」を確認することがとても重要です。
誤ったディレクトリで削除や編集をすると、取り返しのつかないトラブルにつながります。
・深いディレクトリ階層でのショートカットとして使う
/var/www/html/example.com/current/public のような深いパスに頻繁に移動する場合は、
環境変数やエイリアス(例:alias cproj='cd /var/www/html/example.com/current')と組み合わせて
cd の入力を短くする工夫をしておくと作業効率が上がります。
・ユーザー切り替え後のホームディレクトリ確認
sudo -u www-data -s などでユーザーを切り替えたあと、
cd でホームディレクトリに移動し、そこを起点に作業を始めるのもよくあるパターンです。
| short option | long option | description |
|---|---|---|
| -L | 論理パスモードでディレクトリを変更する(シンボリックリンクをたどる・デフォルトの挙動) | |
| -P | 物理パスモードでディレクトリを変更する(シンボリックリンクをたどらず実体のパスで移動する) | |
| -e | ディレクトリ変更に失敗した場合には戻り値をエラーにする(スクリプト内でのエラーチェックに利用) | |
| -@ | 拡張属性を考慮してディレクトリを解決する(一部の環境で利用可能なオプション) |
ここで紹介しているオプションは、bash における cd 組み込みコマンドのものです。
利用しているシェルの種類によって、対応しているオプションが異なる場合がありますのでご注意ください。
ディレクトリ移動後は、pwd コマンド で現在位置を確認したり、
ls コマンド で中身を確認するなど、「場所を意識した操作」をセットで行うのがおすすめです。
新着情報
ブログランキングに参加しています。クリックして応援していただけると嬉しいです。
