前節で作成した,ホームディレクトリ (~
) 内のディレクトリ/ファイルの
構造を再掲します。
あるディレクトリの一つ上位のディレクトリを 親ディレクトリ (parent directory)と呼びます。 上の図では,tmpsub の親ディレクトリは tmp で あり,tmp の親ディレクトリは ~ です。 逆に,tmpsub を tmp の子ディレクトリ (child directory)またはサブディレクト リ (subdirectory)と呼びます。tmp は ~ の子ディレクトリです。
カレントディレクトリの子ディレクトリは「カレントディレクトリに存在するディ レクトリ」です。そのため,第 1.2.2 節で述べたとおり,ディレ クトリ名をそのままコマンドの引数として指定すれば,それがコマンドの処理対 象となります。
一方,カレントディレクトリ自身や「カレントディレクトリの親ディレ クトリ」は,カレントディレクトリに存在するディレクトリではありませんので, ディレクトリ名をコマンドの引数に与えても,コマンドの処理対象にはなりませ ん。これらをコマンドの引数にしたければ,次の記号を使います。
以下を順に実行して,このことを確認しましょう。
ls の引数にディレクトリを指定すると,ls はそのディレクトリ内のファ イル一覧を表示します6。
ちゃんと同じになりますね。
tmpsub はカレントディレクトリに存在するディレクトリではないので, cd tmpsub だけではうまくいきません。まず tmp に移ってから, tmpsub に移りましょう。
tmpsub には何もありませんね。
-a は . で始まるものを含めてファイル名を表示する ls のオプション だったことを思い出してください。
ls -aFカレントディレクトリ自身とその親ディレクトリの存在を確認できまし たか。
まず,cd tmp を試しましょう。
コマンドの引数には,カレントディレクトリに存在するファイル/ディ レクトリ名を指定するのでしたから,これではうまくいきません。
そこで,親ディレクトリの記号 .. を使います。
cd ..
エラーメッセージは出ませんね。
今はちゃんと tmp にいますね。
また,ls -aF の表示では .. も現われました。さらに親ディレクトリ (ホームディレクトリ) に移動するには .. を使うことができます。
では .. を使ってホームディレクトリに戻りましょう。