Linuxを使うと、必然的にターミナルを使用することになり、cdコマンドは欠かせません。Linuxコマンドcdの使い方を一緒に見てみましょう。
目次
Linuxコマンドcd基本使用法
cdコマンドは「change directory」の略で、現在作業中のディレクトリを指定したディレクトリに変更するために使用します。
cd [オプション] [ディレクトリ]
ShellScriptサブディレクトリに移動
以下のコマンドは、現在の作業ディレクトリのサブディレクトリであるtest
に作業ディレクトリを変更します。
cd test
ShellScript
親ディレクトリに移動
親ディレクトリは二つの点..
で表されます。cd ..
はディレクトリ階層構造の親ディレクトリに移動します。
cd ..
ShellScript
相対パスで移動
現在のディレクトリを基準に親ディレクトリのサブディレクトリであるDownloads
ディレクトリに移動します。
cd ../relative/path
ShellScript
絶対パスで移動
絶対パスで作業ディレクトリを変更するには、cdコマンドの後に特定のディレクトリのフルパスを入力します。
cd /absolute/path
ShellScript
前のディレクトリに移動
最後にcdコマンドを使用した直前の作業ディレクトリに移動します。
cd -
ShellScript下の例では、~/linux
ディレクトリから/etc/init.d
ディレクトリに移動し、その後前のディレクトリ~/linux
に戻り、再び直前のディレクトリ/etc/init.d
に戻りました。cdコマンドを入力すると、前の作業ディレクトリがどこなのかを明確にフルパスで表示した後に移動します。

ホームディレクトリに移動
Linuxではホームディレクトリはチルダ~
で表されます。以下のコマンドはホームディレクトリに移動します。
cd ~
ShellScriptこのコマンドは、現在の作業ディレクトリに関係なく、ユーザーのホームディレクトリに移動します。

オプションの使い方
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
ディレクトリに移動します。つまり、ここで言う物理的とは、シンボリックリンクの基準ではなく、シンボリックリンクの元のパスを基準とすることを意味します。
上記のコマンドを入力した結果は以下の図の通りです。

環境変数の使用法
export
コマンドを使用して特定のパスを設定した場合、その変数名を使用してディレクトリを変更できます。
export MYDIR=/path/to/directory
cd $MYDIR
ShellScript以下の図は、変数名を使用したパス変更の例です。

前のパスをすべて記憶する方法: pushd
& popd
cdコマンドを使用して前のパスをすべて記憶することはできません。せいぜい直前のパス程度を行き来できるだけです。
pushd
を使用してディレクトリスタックに追加し、popd
を使用してスタックに保存された最後のディレクトリに戻ります。
pushd
以下は pushd
を使用してパスを変更するたびにそのパスをスタックに追加する例です。

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

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

複数のパスを移動しながら作業し、再びそのパスを経由して作業を行う必要がある場合に有効に使用できる方法です。
注意事項
Linuxオペレーティングシステムは、Windowsオペレーティングシステムとは異なり、大文字と小文字を区別します。したがって、パスを入力する際には大文字と小文字を正確に入力する必要があります。正確に入力しないと、以下の図のように「No such file or directory」というメッセージが表示されます。

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