平成26年度 秋期 ITパスポート試験 公開問題 問75 解説 ディレクトリの相対パス指定
あるWebサーバにおいて, 五つのディレクトリが図のような階層構造になっている。 このとき, ディレクトリBに格納されているHTML文書からディレクトリEに格納されているファイルimg.jpgを指定するものはどれか。ここで, ディレクトリ及びファイルの指定は, 次の方法によるものとする。 〔ディレクトリ及びファイルの指定方法〕 (1) ファイルは, “ディレクトリ名/…/ディレクトリ名/ファイル名” のように, 経路上のディレクトリを順に “/” で区切って並べた後に “/” とファイル名を指定する。 (2) カレントディレクトリは “.” で表す。 (3) 1階層上のディレクトリは “..” で表す。 (4) 始まりが “/” のときは, 左端にルートディレクトリが省略されているものとする。 (5) 始まりが “/”, “.”, “..” のいずれでもないときは, 左端にカレントディレクトリ配下であることを示す “./” が省略されているものとする。
- ../A/D/E/img.jpg
- ../D/E/img.jpg ✓ 正答
- ./A/D/E/img.jpg
- ./D/E/img.jpg
解説
この問題は、現在の場所(カレントディレクトリ)から目的地までの道順を、記号を使って組み立てるパズルです。以下の手順で考えると確実に解けます。
- 現在の場所(ディレクトリB)から見て、共通の親ディレクトリ(ディレクトリA)まで遡る。Bから一つ上のAへ移動するので、相対パスは .. となります。
- 共通の親ディレクトリ(A)から目的地(ディレクトリE)に向かって下りていく。Aから見てD、その下のEという階層を通るので、D/E となります。
- 最後にファイル名 img.jpg をつなげます。
これらを合わせると、../D/E/img.jpg となります。
相対パスのルールを整理する
ITパスポート試験で頻出するファイルパスのルールを理解しましょう。
- .(ドット一つ)は、現在の場所そのものを指します。
- ..(ドット二つ)は、一つ上の階層(親ディレクトリ)を指します。
- /(スラッシュ)は、階層の区切り文字として使います。
今回の問題で重要なのは、現在の場所から一度親に戻る必要があるという点です。ディレクトリBとディレクトリDは、どちらもディレクトリAの配下にありますが、直接はつながっていません。そのため、まずは..を使ってAまで戻るという操作が必須となります。
なぜこの知識が重要なのか
Web開発やOSの操作において、ファイルやフォルダを正しく指定する能力は不可欠です。
例えば、Webサイトを制作する場合、HTMLファイルの中に画像を表示させるためのリンクを記述します。このとき、絶対パス(ルートディレクトリから全て書く方法)ではなく、相対パス(現在地からの位置関係で書く方法)を使うのが一般的です。相対パスを使えば、Webサイト全体を別のサーバーやフォルダへ移動させたとしても、フォルダ内の構成さえ変わらなければ画像リンクが切れることがないためです。
また、コマンドライン操作(LinuxやWindowsのターミナル)を行う際も、この考え方は基本となります。プログラムの実行やファイルのコピーを行う際、今自分がどこにいて、目的のファイルがどの階層にあるのかを頭の中でイメージできることは、ITエンジニアにとって最も基本的なスキルの一つと言えます。
階層構造を理解するコツ
試験で迷ったときは、図を自分でメモ用紙に書き出すのが最も近道です。今回のケースであれば、Aを頂点として左側にB、右側にDとEがぶら下がっているイメージを描き、矢印で結んでみると、どの道を通れば目的地にたどり着くかが視覚的に把握できます。