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

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

ディレクトリを変更するには、cdコマンド を使用します。このコマンドを単独で使用すると、自分のホーム ディレクトリに戻ります。他のディレクトリへ移動するには pathnameが必要です。

絶対パス名を使用することも できますし、相対 パス名を使う こともできます。絶対パス(の表示法)は、ファイルシステムの 一番上の階層/(rootと呼びます)から 始まり、下に向かって目的のディレクトリまで移動します。 相対パス(の表示法)は、それがどこにあるとしてもユーザーの 現在の位置から下へ向かいます。以下のツリーの例は、 cdの使用法を説明しています。

/
/directory1
/directory1/directory2
/directory1/directory2/directory3

現在 directory3にいる時に、 directory1へ移動したい場合、ディレクトリツリーを 上に移動する必要があります。

コマンドの実行

cd directory1 

directory3にいる状態では、そのような ディレクトリは存在しないことを示すエラーが表示されます。 その理由は、directory3の下に directory1が存在しないからです。

directory1へ移動するには、 次のようにタイプします。

cd /directory1 

これが絶対パスの1つの例です。これはLinuxに 一番上の ディレクトリツリー(/)から始めて、 directory1へ移動しなさいと指示を します。このように パス名の先頭に/が付いているものが 絶対パスです。そうでないものが相対パスです。

絶対パスを使用すれば、/ディレクトリ から別の任意のディレクトリに移動できます。全パスの完全入力 が要求されます。相対パスでは、現在のディレクトリに対して 相対的に移動できます。ディレクトリ内でサブディレクトリへ 移動する場合には便利です。

The command cd ..コマンドはシステムに 現在作業中のディレクトリから一段だけ上のディレクトリへ 移動するように指示します。二段上のディレクトリへ移動する には、cd ../../コマンドを使用します。

ここまで学んだ絶対パスと相対パスについて、次のコマンドを 使って練習してみましょう。自分のホームディレクトリから 次のように相対パスを入力します。

cd ../../etc/X11

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

最後に実行した cdコマンドを分析 しましょう。システムに次の事を指示したことになります。

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

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

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

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

反対に、絶対パスを使用すると、/etc/X11 までもっと素早く移動することができます。例えば、

cd /etc/X11

絶対パスは ルートディレクトリ(/)から始まり、指定する ディレクトリまで表示して下がっていきます。

注意注意
 

移動先のディレクトリやファイルへの相対パスを入力する 前に、自分が現在いるディレクトリを必ず確認してください。 絶対パスを使用する際は、ファイルシステムの位置について 心配する必要はありません。現在いるディレクトリが不明 であれば、pwdと入力して現在作業中の位置を 表示します。これで、相対パス名を使ってディレクトリを 上下に移動できます。

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

表 13-1. cdオプション

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

cd /root

rootとしてログインしていない場合は、そのディレクトリへの アクセス拒否をされてしまいます。

rootとその他のユーザーアカウント(またはログイン ディレクトリ)へのアクセス拒否は、Linuxシステムが誤ってあるいは 悪意のある不正操作からシステムを保護するための一つの手段です。 項13.14を参照してください。

rootのログインとrootのディレクトリを変更するには、 suコマンドを使用します。

su

ティップヒント
 

suコマンドは 代理ユーザー(substitute users)の意味を持ちます。 そして、一時的に他のユーザーとしてログインをさせてくれます。 suだけを入力して[Enter]を 押すと、root(スーパーユーザーとも呼びます)になりますが、まだ 自分のログインシェル(ユーザーのホームディレクトリ)の中に います。su -と入力すると、 rootのログイン シェルでrootになります。—これは、最初からrootでログイン したのと同じ状態になります。

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

rootとしての作業を終了した時に、プロンプトで exitとタイプすると元のユーザーのアカウントに戻り ます。