本文へスキップ

平成26年度 秋期 ITパスポート試験 問75

この問題の解説と、これまでの解答の記録です。

問75
頻出度★☆☆

あるWebサーバにおいて, 五つのディレクトリが図のような階層構造になっている。このとき, ディレクトリBに格納されているHTML文書からディレクトリEに格納されているファイルimg.jpgを指定するものはどれか。ここで, ディレクトリ及びファイルの指定は, 次の方法によるものとする。

      A
     ┌┴┐
     B  D
     │  │
     C  E

〔ディレクトリ及びファイルの指定方法〕 (1) ファイルは, “ディレクトリ名/…/ディレクトリ名/ファイル名” のように, 経路上のディレクトリを順に “/” で区切って並べた後に “/” とファイル名を指定する。 (2) カレントディレクトリは “.” で表す。 (3) 1階層上のディレクトリは “..” で表す。 (4) 始まりが “/” のときは, 左端にルートディレクトリが省略されているものとする。 (5) 始まりが “/”, “.”, “..” のいずれでもないときは, 左端にカレントディレクトリ配下であることを示す “./” が省略されているものとする。

出典 平成26年度 秋期 ITパスポート試験 問75
解説

問 75

  • 不正解ア

    「../A/D/E/img.jpg」は、先頭の「..」でカレントディレクトリ B の 1 階層上である A に移動した後、さらに「A」という名前のディレクトリに入ろうとしている。しかし A の直下にあるのは B と D だけで、A の中に A は存在しない。「..」が指す先がすでに A であることを見落として、A の名前を重ねて書いてしまった誤りである。

  • イ

    正解 正解はイ「../D/E/img.jpg」。まず図の階層を確認すると、最上位が A で、その直下に B と D が並び、B の直下に C、D の直下に E がある。HTML 文書はディレクトリ B に置かれているので、カレントディレクトリ (今いる場所) は B である。ここから E の中の img.jpg にたどり着く経路は、B → A → D → E の順になる。指定方法 (3) より 1 階層上のディレクトリは「..」で表すので、B から親の A へ上がる部分が「..」になる。次に A の直下の D に入るので「/D」、さらに D の直下の E に入るので「/E」、最後にファイル名を「/img.jpg」と続ける。これらをつなげると「../D/E/img.jpg」となり、イが正しい。ポイントは、上がった先の A は「..」ですでに表現されているため、パスの中に A という名前を改めて書く必要がないことと、そもそも B の中に D は無いので上へ上がる「..」を省略できないことである。

  • 不正解ウ

    「./A/D/E/img.jpg」は、指定方法 (2) より先頭の「.」がカレントディレクトリすなわち B を指すので、B の直下に A があることを前提にしている。しかし B の直下にあるのは C だけで、A は B の親であって子ではない。親へたどるには「.」ではなく「..」を使う必要がある。

  • 不正解エ

    「./D/E/img.jpg」も先頭の「.」がカレントディレクトリ B を指すため、B の直下に D があることを前提にしている。図では D は B と同じ階層 (どちらも A の子) にある兄弟ディレクトリなので、B から直接 D には入れない。一度「..」で親の A に上がってからでないと D にはたどり着けない。

ここがポイント
  • 相対パスの基本記号: 「.」はカレントディレクトリ (今いる場所)、「..」は 1 階層上の親ディレクトリを表す。先頭が「/」なら絶対パスでルートディレクトリからの指定、先頭がいずれでもなければ「./」が省略されているとみなす。
  • 相対パスは「現在地から目的地までの道順」をそのまま書き下す。まず木構造の上でカレントディレクトリから目的ファイルまでの経路 (ここでは B → A → D → E) を確認し、上がる回数だけ「..」を並べ、その後に下る先のディレクトリ名を「/」でつないでいけばよい。上がった先のディレクトリ名は「..」に含まれるので重ねて書かない。
用語

解答の記録