Linux / コマンド / cd / 別のディレクトリに移動するコマンド
Linuxでは、cdコマンドは現在のシェルの作業ディレクトリを変更します。例えば、cd /etcを実行して移動し、pwdで現在の場所を確認できます。
現在の場所を確認して移動する
cd は change directory の略で、Bash のようなシェルに組み込まれているコマンドです。移動したいディレクトリを引数として指定します。次のコマンドは /etc に移動し、その場所を表示します。
cd /etc
pwd
移動が成功した場合、cd コマンド自体は通常何も出力しません。pwd が /etc を示していることを確認してください。移動はファイルの移動や内容の変更を伴うものではなく、現在のシェルの参照位置を変更するだけです。他のターミナルの作業ディレクトリは変更されません。
絶対パスと相対パス
絶対パスはルートディレクトリ/から始まります。例えば、次のコマンドは現在の場所に関係なく/var/logを指定します。ディレクトリは存在し、アクセス可能でなければなりません。
cd /var/log
pwd
相対パスは現在の場所に基づきます。例えば、/varに移動してその中のlogに入るには、次のように実行します。
cd /var
cd ./log
pwd
成功した場合、/var/logが表示されます。.は現在のディレクトリを指しているため、./logは現在の場所に対するlogです。BashでCDPATHが設定されている場合、cd logは代替の検索パスを使用できますが、cd ./logは明示的に現在のディレクトリを指します。移動が失敗した場合は、次のコマンドを実行する前にエラーを解決してください。
親ディレクトリと前の場所に移動する
.. は親ディレクトリを指します。現在の場所が /var/log の場合、次のコマンドで /var に移動します。
cd ..
pwd
以前に訪れたディレクトリに戻るには、次のコマンドを使用します。
cd -
Bash の cd - は、前の作業ディレクトリに移動し、そのパスを表示します。前の場所が設定されていない場合やアクセスできない場合、失敗することがあります。上記の例では、直前に /var/log から /var に移動した場合、/var/log に戻ります。
ホームディレクトリに移動する
もしパスを指定せずにcdを実行すると、BashはHOME変数に設定されたホームディレクトリに移動します。~も通常、現在のユーザーのホームディレクトリに展開されます。
cd
pwd
ホームディレクトリの場所はアカウントや設定によって異なるため、常に/home/userだと考えないでください。cd ~/Documentsはホーム下のDocumentsに移動し、そのディレクトリが存在しない場合は失敗します。Bashのcd ~userは、userを実際のアカウント名に置き換えて、そのアカウントのホームパスを示す方法です。別のユーザーとしてログインしたり、権限を与えたりするものではなく、ターゲットへのアクセス権を持っている必要があります。
スペースやシンボリックリンクを含むパス
ディレクトリ名にスペースが含まれる場合は、パスを引用符で囲みます。以下の例では、my folder がカレントディレクトリにある場合に使用しています。
cd "my folder"
ホームパスを使用する場合は、~ を引用符の外に置き、残りを囲むことができます。以下は、my folder がホームディレクトリの下にある場合の例です。
cd ~/"my folder"
シンボリックリンクを経由して移動した場合、表示されるパスと実際のディレクトリパスが異なることがあります。Bash の pwd -P は物理パスを表示します。cd -P はリンクから解釈された物理パスに基づいて移動し、.. によって処理された結果はデフォルトの動作と異なる場合があります。詳細については、Bash の cd と pwd の説明 を確認してください。
移動できない場合の確認方法
- パスが見つかりません: スペルと大文字小文字、および現在の場所を確認し、名前が存在するかどうかを確認するには
lsを使用してください。ファイルはディレクトリではないため、cdでは入りません。 - アクセス拒否: 対象およびその親ディレクトリにアクセスするための検索権限があることを確認してください。権限を勝手に変更するのではなく、必要なアクセスを管理者に依頼してください。
- 予期しない場所:
pwdおよびpwd -Pを比較し、シンボリックリンクまたはCDPATHの設定を確認してください。
Bashで組み込みコマンドのヘルプはhelp cdで確認できます。スクリプトでは、cdが失敗した際に後続の操作を続行しないように、終了ステータスを確認する必要があります。




