Linuxコマンドcdの8つの使い方

Linuxを使うと、必然的にターミナルを使用することになり、cdコマンドは欠かせません。Linuxコマンドcdの使い方を一緒に見てみましょう。

Linuxコマンドcd基本使用法

cdコマンドは「change directory」の略で、現在作業中のディレクトリを指定したディレクトリに変更するために使用します。

cd [オプション] [ディレクトリ]
ShellScript

サブディレクトリに移動

以下のコマンドは、現在の作業ディレクトリのサブディレクトリであるtestに作業ディレクトリを変更します。

cd test
ShellScript
図1. Linuxコマンドcd: サブディレクトリに移動
図1. Linuxコマンドcd: サブディレクトリに移動

親ディレクトリに移動

親ディレクトリは二つの点..で表されます。cd ..はディレクトリ階層構造の親ディレクトリに移動します。

cd ..
ShellScript
図2. Linuxコマンドcd: 親ディレクトリに移動
図2. Linuxコマンドcd: 親ディレクトリに移動

相対パスで移動

現在のディレクトリを基準に親ディレクトリのサブディレクトリであるDownloadsディレクトリに移動します。

cd ../relative/path
ShellScript
図3. Linuxコマンドcd: 相対パスで移動
図3. Linuxコマンドcd: 相対パスで移動

絶対パスで移動

絶対パスで作業ディレクトリを変更するには、cdコマンドの後に特定のディレクトリのフルパスを入力します。

cd /absolute/path
ShellScript
図4. Linuxコマンドcd: 絶対パスで移動
図4. Linuxコマンドcd: 絶対パスで移動

前のディレクトリに移動

最後にcdコマンドを使用した直前の作業ディレクトリに移動します。

cd -
ShellScript

下の例では、~/linuxディレクトリから/etc/init.dディレクトリに移動し、その後前のディレクトリ~/linuxに戻り、再び直前のディレクトリ/etc/init.dに戻りました。cdコマンドを入力すると、前の作業ディレクトリがどこなのかを明確にフルパスで表示した後に移動します。

図5. Linuxコマンドcd: 前のディレクトリに移動
図5. Linuxコマンドcd: 前のディレクトリに移動

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

Linuxではホームディレクトリはチルダ~で表されます。以下のコマンドはホームディレクトリに移動します。

cd ~
ShellScript

このコマンドは、現在の作業ディレクトリに関係なく、ユーザーのホームディレクトリに移動します。

図6. Linuxコマンドcd: ホームディレクトリに移動
図6. Linuxコマンドcd: ホームディレクトリに移動

オプションの使い方

cdコマンドには特殊なオプションがあります。それは上位ディレクトリ (..) に移動する際に使用する -L オプションと -P オプションです。オプションを指定しない場合、デフォルトで -L オプションが適用されます。

-L オプションは論理的(logical)に上位ディレクトリであることを意味し、-P オプションは物理的(physical)に上位ディレクトリであることを意味します。どのような場合に適用可能かを例を挙げて説明します。

ln -s ~/Pictures/Screenshots shots
cd shots
cd ..
cd shots
cd -P ..
ShellScript
  • 1行目: ln コマンドを使用して ~/Pictures/Screenshots ディレクトリをホームディレクトリに shots というシンボリックリンクを作成します。
  • 2行目: シンボリックリンク shots に移動します。
  • 3行目: 論理的上位ディレクトリであるホームディレクトリに移動します。
  • 4行目: 再びシンボリックリンク shots に移動します。
  • 5行目: 物理的上位ディレクトリである ~/Pictures ディレクトリに移動します。つまり、ここで言う物理的とは、シンボリックリンクの基準ではなく、シンボリックリンクの元のパスを基準とすることを意味します。

上記のコマンドを入力した結果は以下の図の通りです。

図7. Linuxコマンドcdオプションの使用法
図7. Linuxコマンドcdオプションの使用法

環境変数の使用法

export コマンドを使用して特定のパスを設定した場合、その変数名を使用してディレクトリを変更できます。

export MYDIR=/path/to/directory
cd $MYDIR
ShellScript

以下の図は、変数名を使用したパス変更の例です。

図8. Linuxコマンドcd 環境変数の使用
図8. Linuxコマンドcd 環境変数の使用

前のパスをすべて記憶する方法: pushd & popd

cdコマンドを使用して前のパスをすべて記憶することはできません。せいぜい直前のパス程度を行き来できるだけです。

pushd を使用してディレクトリスタックに追加し、popd を使用してスタックに保存された最後のディレクトリに戻ります。

pushd

以下は pushd を使用してパスを変更するたびにそのパスをスタックに追加する例です。

図9. ディレクトリスタックにパスを追加: pushdコマンド
図9. ディレクトリスタックにパスを追加: pushdコマンド

dirs

dirs コマンドを使用すると、スタックに積まれたパスを表示します。

図10. ディレクトリスタックに積まれたパスを確認: dirs
図10. ディレクトリスタックに積まれたパスを確認: dirs

popd

popd を入力するたびに、スタックの先頭の現在のパスを削除しながら、最後のパスに戻ります。

図11. ディレクトリスタックから最後のパスに戻る: popd
図11. ディレクトリスタックから最後のパスに戻る: popd

複数のパスを移動しながら作業し、再びそのパスを経由して作業を行う必要がある場合に有効に使用できる方法です。

注意事項

Linuxオペレーティングシステムは、Windowsオペレーティングシステムとは異なり、大文字と小文字を区別します。したがって、パスを入力する際には大文字と小文字を正確に入力する必要があります。正確に入力しないと、以下の図のように「No such file or directory」というメッセージが表示されます。

図12. パスを正確に入力しなかった場合に発生するメッセージ
図12. パスを正確に入力しなかった場合に発生するメッセージ

まとめ

cdコマンドを利用して作業ディレクトリを移動する方法について詳しく見てきました。単純なパスの移動から特殊なオプションの使用法まで、そして非常に特殊なコマンドである pushdpopd についても一緒に見てきました。これらの部分を理解すれば、Linuxファイルシステムをより効率的に使用することができるでしょう。追加の質問や具体的な例が必要な場合は、いつでもお問い合わせください! 🙂

リファレンス

関連ポスト

コメントする