概要
現在の作業ディレクトリを変更します。シェル自身の状態を変えるため、外部コマンドではなくシェル組み込みとして理解することが重要です。
基本構文
cd [ディレクトリ]
cd -
cd -L [ディレクトリ]
cd -P [ディレクトリ]詳細解説
cdは、シェルが現在どのディレクトリを基点として相対パスを解釈するかを切り替えるコマンドです。ls、cp、find、実行ファイルの相対指定など、多くの操作は現在の作業ディレクトリを前提に動くため、cdはLinuxの基本中の基本です。
最大のポイントは、cdが現在のシェル実行環境を変更することです。子プロセスで実行した外部コマンドは親シェルの作業ディレクトリを変えられないため、cdは通常シェル組み込みで提供されます。
実務では、プロジェクトのルートへ移動して作業する、ログ保存先へ入る、設定ディレクトリへ移る、相対パス前提のスクリプトを読むといった場面で常に使います。
このコマンドを使う場面
作業場所を切り替えたい時、相対パスを使う前提のコマンドを実行する時、設定ディレクトリやログディレクトリへ移動して内容確認をしたい時に使います。
まず安全に試す方法
まずは読み取り専用の場所で現在位置の変化だけを確認します。
1. pwd
2. cd /etc
3. pwd
4. cd -
5. pwd
3分ミッション
少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。
-
pwdで現在位置を確認してからcd /etcで移動し、再度pwdで結果を確認します。
-
2つのディレクトリをcd -で往復し、作業の切り替えに慣れます。
資格試験との関連
-
LinuC レベル1
範囲: 1.03.1 コマンドラインの操作根拠: officialLinuCレベル1では、コマンドライン操作やシェル環境の理解が問われます。cdはその基礎を支える代表的なコマンドです。
-
LPIC-1
範囲: 105.1 シェル環境のカスタマイズと利用根拠: officialLPIC-1では、シェル環境、変数、履歴、コマンド解決の理解が重視されます。cdはその周辺知識と一緒に学ぶ価値が高いコマンドです。
-
共通基礎
範囲: Linuxコマンド基礎根拠: editorial試験横断で、cdはコマンドライン操作、手順読解、トラブルシュートの基礎体力を作る項目です。
実行結果サンプル
-
pwd cd /etc pwd/home/user /etc -
cd /var/log cd -/home/user
戻り値コード
- 0 正常終了。指定したディレクトリへ移動できました。
- >0 指定先が存在しない、権限がない、またはその他のエラーで移動できませんでした。
使用例
cd /etccd ..cd -pwd
よくあるエラー
-
cdしているつもりなのに別ターミナルでは場所が変わらない 原因: cdは現在のシェルだけに作用し、他の端末や親プロセスには影響しません。対処: 作業したい端末ごとにcdします。
-
相対パスで実行したら別ファイルを参照してしまった 原因: 現在の作業ディレクトリを誤解しています。対処: 実行前にpwdで位置を確認し、必要なら絶対パスを使います。
導入・互換性情報
POSIXではcdはシェル組み込みとして定義されます。-Lは論理パスを優先し、-Pはシンボリックリンク解決後の物理パスを優先します。
Bash、Dash、Zshなど主要シェルで基本は共通ですが、CDPATHや表示メッセージには実装差があります。
- Debian GNU/Linux / 13 / Bash 5.2.37
注意点 / セキュリティリスク
危険度は低いですが、相対パス前提の作業では移動先を誤ると別のファイルを編集、削除、上書きしてしまう原因になります。操作前にpwdで位置を確認するのが安全です。
FAQ
-
Q. cdはなぜ外部コマンドではなく組み込みなのですか。 A. 外部プログラムが自分自身の作業ディレクトリを変えても親シェルには反映されないためです。
-
Q. cd -は何に使いますか。 A. 直前のディレクトリへ戻るために使います。
関連用語
参照リンク
- カテゴリー: Shell And Cli
- シェル依存: Posix Sh
- レベル: Beginner
- 対応試験: LinuC, LinuC レベル1, LPIC, LPIC-1, 共通基礎