No.001シェル

cd

シーディー・ディレクトリ移動

知識レベル 入門安全に試せる一般ユーザーで使えるシェルに組み込み

現在の作業ディレクトリを変更します。シェル自身の状態を変えるため、外部コマンドではなくシェル組み込みとして理解することが重要です。

答えよく使う形

  1. 現在位置を確認し、/etcへ移動したことを確かめます
  2. 直前のディレクトリへ戻ります
  3. シンボリックリンクを含む論理パスを基準に移動先を解釈します
visitor@goodly: ~

$ pwd cd /etc pwd

/home/user
/etc

$ cd /var/log cd -

/home/user

$ cd /etc

覚える順番の中で30 コマンド・3 駅め / 30LPIC-1・34 駅め / 106

どんなコマンド?

こんなときに

作業場所を切り替えたい時、相対パスを使う前提のコマンドを実行する時、設定ディレクトリやログディレクトリへ移動して内容確認をしたい時に使います。

cdは、シェルが現在どのディレクトリを基点として相対パスを解釈するかを切り替えるコマンドです。ls、cp、find、実行ファイルの相対指定など、多くの操作は現在の作業ディレクトリを前提に動くため、cdはLinuxの基本中の基本です。

最大のポイントは、cdが現在のシェル実行環境を変更することです。子プロセスで実行した外部コマンドは親シェルの作業ディレクトリを変えられないため、cdは通常シェル組み込みで提供されます。

実務では、プロジェクトのルートへ移動して作業する、ログ保存先へ入る、設定ディレクトリへ移る、相対パス前提のスクリプトを読むといった場面で常に使います。

書き方とオプション

組み立ててみるオプションを押すと、下の1行に足されます。もう一度押すと外れます。

$ cd

使用例と実行結果

行を押すとコピーできます。

/home/user
/etc
現在位置を確認し、/etcへ移動したことを確かめます。
/home/user
直前のディレクトリへ戻ります。

まず安全に試す

3分ミッション

手を動かすと覚えやすくなります。できたものに印を付けてください(この端末に残ります)。

0 / 2

ゲームで確かめる

つまずいたとき

cdしているつもりなのに別ターミナルでは場所が変わらない

原因cdは現在のシェルだけに作用し、他の端末や親プロセスには影響しません。

こうする作業したい端末ごとにcdします。

相対パスで実行したら別ファイルを参照してしまった

原因現在の作業ディレクトリを誤解しています。

こうする実行前にpwdで位置を確認し、必要なら絶対パスを使います。

終わったときの数(戻り値)

$ echo $?

  • 0正常終了。指定したディレクトリへ移動できました。
  • >0指定先が存在しない、権限がない、またはその他のエラーで移動できませんでした。

気をつけることと入れ方

気をつけること

危険度は低いですが、相対パス前提の作業では移動先を誤ると別のファイルを編集、削除、上書きしてしまう原因になります。操作前にpwdで位置を確認するのが安全です。

シェル(bash など)に組み込まれたコマンドです。入れるものはありません。

環境による違い

POSIXではcdはシェル組み込みとして定義されます。-Lは論理パスを優先し、-Pはシンボリックリンク解決後の物理パスを優先します。

Bash、Dash、Zshなど主要シェルで基本は共通ですが、CDPATHや表示メッセージには実装差があります。

確かめた環境Debian GNU/Linux / 13 / Bash 5.2.372026-04-09 に確認

よくある質問

cdはなぜ外部コマンドではなく組み込みなのですか。

外部プログラムが自分自身の作業ディレクトリを変えても親シェルには反映されないためです。

cd -は何に使いますか。

直前のディレクトリへ戻るために使います。

資格試験では

  • LinuC レベル1大事1.03.1 コマンドラインの操作
  • LPIC-1大事105.1 シェル環境のカスタマイズと利用
  • 共通基礎大事Linuxコマンド基礎

cd を最後まで読みました。

Linux コマンド辞典に戻る9 / 144

Goodly のメニュー