【概要】
Linuxを使っていると、必ずと言っていいほど登場するのが cd コマンドです。
cd は Change Directory の略で、現在作業しているディレクトリ(カレントディレクトリ)を変更するために使用します。
Linuxでは、ファイルを操作するときに「今どのディレクトリにいるのか」が非常に重要です。
例えば、以下のように表示されるプロンプトで、
user@server:~/work$
現在 ~/work にいることが分かります。
cd を使えば、別のディレクトリへ移動できます。
Linux初心者にとっては単純に見えるコマンドですが、..、.、~、-、絶対パス・相対パスなどを理解すると、Linuxでのファイル操作が一気に楽になります。
【基本的な使い方】
もっとも基本的な使い方は、移動先のディレクトリを指定する方法です。
cd ディレクトリ
例えば /tmp に移動する場合は、
cd /tmp
とします。
現在のディレクトリは pwd コマンドで確認できます。
pwd
実行例:
$ pwd
/home/user
$ cd /tmp
$ pwd
/tmp
絶対パスで移動する
ルートディレクトリ / から始まるパスを指定すると、絶対パスで移動できます。
cd /var/log
現在どこにいるかに関係なく、指定した /var/log へ移動できます。
相対パスで移動する
現在のディレクトリを基準にして移動することもできます。
例えば、
/home/user
├── documents
└── work
という構成で /home/user にいる場合、
cd documents
とすると /home/user/documents に移動します。
【よく使う指定方法】
cd では、特別な意味を持つ記号を組み合わせることで、ディレクトリを効率よく移動できます。
| 指定 | 意味 | 例 |
|---|---|---|
. |
現在のディレクトリ | cd . |
.. |
1つ上のディレクトリ | cd .. |
~ |
ホームディレクトリ | cd ~ |
- |
直前にいたディレクトリ | cd - |
/ |
ルートディレクトリ | cd / |
.. で1つ上へ移動
cd ..
例えば /home/user/work にいる場合、
cd ..
で /home/user に移動します。
さらに上へ移動することもできます。
cd ../..
これは2階層上へ移動する操作です。
~ でホームディレクトリへ戻る
cd ~
ユーザーのホームディレクトリへ移動します。
多くのLinux環境では、次のように書くこともできます。
cd
引数を指定しない cd は、ホームディレクトリへ移動します。
- で直前のディレクトリへ戻る
cd - は非常に便利な指定方法です。
cd /tmp
cd /var/log
cd -
この場合、cd - によって直前の /tmp に戻ることができます。
ディレクトリを行ったり来たりするときに便利です。
【cdでよく使うオプション・機能】
cd は一般的な外部コマンドとは異なり、Bashなどのシェルが提供する**シェル組み込みコマンド(builtin)**です。
そのため、ls や cp などの外部コマンドとは少し性質が異なります。
-L:論理的に移動する
cd -L ディレクトリ
-L はシンボリックリンクを論理的なパスとして扱う指定です。
Bashのデフォルト動作でもあるため、通常は明示的に指定する必要はありません。
-P:物理的なパスを使用する
cd -P ディレクトリ
-P はシンボリックリンクをたどって、実際の物理的なディレクトリ位置を基準に移動します。
シンボリックリンクを多用している環境では、-L と -P の違いを知っておくと便利です。
例えば、
ln -s /var/log /tmp/mylog
のようなシンボリックリンクがある場合、
cd /tmp/mylog
と
cd -P /tmp/mylog
では、カレントディレクトリの扱いが異なる場合があります。
【実践例】
1. ホームディレクトリから作業ディレクトリへ移動する
cd ~/work
~ はホームディレクトリを意味するため、現在位置を意識せずに移動できます。
2. 1つ上へ移動して別のディレクトリへ入る
cd ../documents
現在のディレクトリから1つ上へ移動し、その中の documents ディレクトリへ移動します。
3. 直前のディレクトリへ戻る
cd -
作業中に2つのディレクトリを頻繁に切り替える場合に便利です。
4. ルートディレクトリから移動する
cd /
Linuxのディレクトリツリーの最上位であるルートディレクトリへ移動します。
その後、
cd var/log
とすれば /var/log へ移動できます。
【よくあるエラー】
No such file or directory
bash: cd: xxx: No such file or directory
指定したディレクトリが存在しない場合に表示されます。
まず ls でディレクトリ名を確認してみましょう。
ls
cd 正しいディレクトリ名
スペルミスや大文字・小文字の違いにも注意してください。
Linuxのファイル名は、基本的に大文字と小文字を区別します。
Permission denied
bash: cd: xxx: Permission denied
ディレクトリへのアクセス権限がない場合に表示されます。
ls -ld でディレクトリの権限を確認できます。
ls -ld xxx
cd では、そのディレクトリに対して実行権限(x)が必要になる点も覚えておきましょう。
【初心者が覚えておきたいポイント】
まずは、次の5つを覚えておけば十分です。
cd /path/to/dir # 指定したディレクトリへ移動
cd .. # 1つ上へ移動
cd ~ # ホームディレクトリへ移動
cd - # 直前のディレクトリへ移動
cd # ホームディレクトリへ移動
特に、
cd ..
と
cd -
はLinuxの操作で非常によく使います。
また、現在位置が分からなくなったら、
pwd
で確認する習慣をつけるとよいでしょう。
【まとめ】
cd は、Linuxで作業するための基本中の基本となるコマンドです。
今回覚えておきたいポイントをまとめると、以下のとおりです。
-
cd ディレクトリで指定したディレクトリへ移動できる -
cd ..で1つ上のディレクトリへ移動できる -
cd ~またはcdでホームディレクトリへ移動できる -
cd -で直前のディレクトリへ戻ることができる -
/から始まるパスは絶対パス - 現在位置を基準にしたパスは相対パス
-
-Lと-Pではシンボリックリンクの扱いが異なる -
cdはシェル組み込みコマンドである
Linuxでは「今どこにいるのか」を意識することが非常に重要です。
cd と pwd をセットで使えるようになると、Linuxのコマンド操作がぐっと分かりやすくなります。
次回以降のLinuxコマンド道場でも、実際の操作例を交えながら、よく使うコマンドを一つずつ身につけていきましょう。