cdによるディレクトリの移動

ディレクトリの変更は、自分が今いる場所(現在のディレクトリ)がわかっていて、またそこと行き先との関連(現在のディレクトリの上または下)がわかっていれば、簡単に行えます。

ディレクトリを変更するには、cdコマンドを使用します。ほかに何も指定しないでこのコマンドを使用すると、常にホームディレクトリに戻ります。それ以外のディレクトリに移動するためには、パス(path:道筋)を指定する必要があります。

絶対パス名を使用することも、相対パス名を使用することもできます。絶対パスは、最上部の「/」(ルートと呼ばれます)から始まり、要求されるディレクトリまで降りていきます。相対パスは、ユーザーがどこにいても、現在のディレクトリを基準に移動します。下に示すツリーの例は、cdを説明するために示すものです。

/
├directory1
├directory2
└directory3

現在directory3にいて、directory1に切り替えたい場合には、ディレクトリツリーを上に向かって移動する必要があります。

directory3にいるときに次のように入力してみましょう。

cd directory1 

そのようなディレクトリがないことを示すエラーメッセージが表示されます。これは、directory3の下にはdirectory1がないからです。

directory1まで上に移動するためには、次のように入力します。

cd /directory1 

ルートディレクトリを表す「/」から始まるので、これは絶対パスです。Linuxに対して、最上部から始めてdirectory1が見つかるまで下に降りるように指示しています。

絶対パスを使用すれば任意のディレクトリから別の任意のディレクトリに移動できますが、相対パスでは現在のディレクトリの下にしか移動できません。

図 10-4. フルパスを表示する絶対パス名

ティップ絶対パスと相対パス
 

パスの最初の文字が/であれば絶対パス、そうでない場合は相対パスです。

図 10-5. 現在位置を基準とする相対パス名

絶対パスと相対パスに関する練習をしておきましょう。ホームディレクトリから、次のように相対パスを入力してください。

cd ../../etc/X11

cd ..は、現在ユーザーが作業を行っているディレクトリのすぐ上のディレクトリに移動するように、システムに対して指示するものです。cd ../..は、2階層上のディレクトリに移動するように指示します。

上の例のコマンドを使用すると、/X11というディレクトリに移動します。これは、X Window Systemに関連する設定ファイルやディレクトリが入っているディレクトリです。

最後に実行したcdコマンドは、システムに次のように指示することを意味します。

  1. ログインディレクトリの親ディレクトリ(おそらく/home)まで1レベルに移動しなさい

  2. さらに、そのディレクトリの親(/ディレクトリ)まで上に移動しなさい

  3. そして、下に向かってetcディレクトリに移動しなさい

  4. 最後に、/X11ディレクトリに移動しなさい

絶対パスを使用すると、/X11ディレクトリにすばやく移動することができます。次のように入力します。

cd /etc/X11

これで、目的のディレクトリに移動できます。

注意自分の居場所を知る方法
 

移動先のディレクトリやファイルへの相対パスを記述する前に、自分が現在どの作業ディレクトリにいるかを常に確認してください。ただし、他のディレクトリやファイルへの絶対パスを記述するときは、ファイルシステムのどこにいるかなどは気に掛ける必要はありません。はっきりしないときには、pwdと入力してください。

表 10-2. cdのオプション

コマンド機能
cdログインディレクトリに戻ります。
cd ~ログインディレクトリに戻ります。
cd /システム全体のルートディレクトリに移動します。
cd /rootインストール時に作成されたroot(スーパーユーザー)アカウントのホームディレクトリに移動します。
cd /homeホームディレクトリ(通常はここにユーザーのログインディレクトリがあります)に移動します。
cd ..1つ上のディレクトリに移動します。
cd ~otheruserotheruserのログインディレクトリに移動します(ただし、otheruserから許可を得ている場合)。
cd /dir1/subdirfooこの絶対パスを指定すると、現在いるディレクトリにかかわらず、dir1のサブディレクトリであるsubdirfooに直接移動します。
cd ../../dir3/X11この相対パスを指定すると、ルートに向けて2階層上のディレクトリまで移動してからdir3に移動し、さらにX11ディレクトリに移動します。

これで、ディレクトリの変更方法がわかってきたと思いますので、rootのログインディレクトリに移動したときにどのようなことが起こるのかを見てみましょう。次のように入力します。

cd /root

rootとしてログインしていないので、そのディレクトリへの「アクセスが拒否」されてしまいます。

rootや他のユーザーのログインディレクトリへのアクセスを拒否することは、偶発や故意による不正操作からLinuxシステムを保護する1つの方法です。詳しくは所有権と権限を参照してください。

rootログインに変更するには、suコマンドを使用します。次の一連のコマンドを入力してください。

[newuser@localhost newuser]$ su 
Password: your root password 
[root@localhost newuser]# cd /root 
[root@localhost /root]#

rootのパスワードを入力するとすぐに、スーパーユーザーを示すコマンドプロンプトに変化したことがわかります。プロンプトの先頭にあるアカウント名がrootになり、プロンプトが「#」になります。

図 10-6. rootになる

これで、rootのログインディレクトリへのcdを入力するとアクセスが許可されるようになります。

rootとしての作業が終了したら、プロンプトでexitと入力します。

[root@localhost /root]# exit
exit
[newuser@localhost newuser]$