本文へスキップ

平成21年度 春期 ITパスポート試験 問57

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

問57
頻出度★☆☆

あるファイルシステムの一部が図のようなディレクトリ構造であるとき,*印のディレクトリ(カレントディレクトリ)D3から矢印が示すディレクトリD4の配下のファイルaを指定するものはどれか。ここで,ファイルの指定は,次の方法によるものとする。 〔指定方法〕 (1) ファイルは,“ディレクトリ名¥…¥ディレクトリ名¥ファイル名”のように,経路上のディレクトリを順に“¥”で区切って並べた後に“¥”とファイル名を指定する。 (2) カレントディレクトリは“.”で表す。 (3) 1階層上のディレクトリは“..”で表す。 (4) 始まりが“¥”のときは,左端にルートディレクトリが省略されているものとする。 (5) 始まりが“¥”,“.”,“..”のいずれでもないときは,左端にカレントディレクトリ配下であることを示す“.¥”が省略されているものとする。

D1
├─ D2
│   ├─ →D4
│   └─ D5
└─ D3 *(カレントディレクトリ)

(注:*印はカレントディレクトリD3を,矢印(→)は指定先のディレクトリD4を示す。)

出典 平成21年度 春期 ITパスポート試験 問57
解説

問 57相対指定の基本記号を機械的に適用する

  • 不正解ア

    本肢は「..¥..¥D2¥D4¥a」で、「..」が 2 回続いている。指定方法(3)より 1 回目の「..」で D3 から D1 へ上がるが、2 回目の「..」でさらに 1 階層上、すなわち図に存在しない D1 の上位ディレクトリを指してしまう。そこから D2 へは下れないので、目的のファイル a に到達できず誤り。上がるのは 1 階層だけでよい。

  • イ

    正解 正解は イ。まず図の親子関係を確定する。最上位が D1 で、その直下に D2 と D3 が並び、D2 の直下に D4 と D5 がある。つまり D3 (カレントディレクトリ) と D2 は兄弟で、共通の親が D1、目的の D4 は D2 の子である。したがって D3 から D4 配下のファイル a へ向かう経路は「1 階層上がって D1 へ → D2 へ下る → D4 へ下る → a」となる。これを指定方法に当てはめると、1 階層上は指定方法(3)より「..」、以降は経路上のディレクトリ名を指定方法(1)にしたがって「¥」で区切って並べ、最後に「¥」とファイル名 a を付けるので「..¥D2¥D4¥a」となる。これは先頭が「..」なので指定方法(5)の「.¥」補完は働かず、書いたとおりカレントディレクトリの 1 階層上から始まる相対指定として解釈される。よって イ が正しい。

  • 不正解ウ

    「D1¥D2¥D4¥a」は先頭が「¥」でも「.」でも「..」でもないため、指定方法(5)により左端に「.¥」が省略されているとみなされ、実際には「.¥D1¥D2¥D4¥a」=カレントディレクトリ D3 の配下に D1 がある、という意味になる。しかし図では D1 は D3 の親であって子ではないので誤り。ルートから絶対指定でたどりたいのであれば、指定方法(4)にしたがって先頭に「¥」を付け「¥D1¥D2¥D4¥a」と書く必要がある。

  • 不正解エ

    「D2¥D4¥a」も先頭が「¥」「.」「..」のいずれでもないので、指定方法(5)により「.¥D2¥D4¥a」=カレントディレクトリ D3 の配下に D2 がある、という意味になる。図では D2 は D3 の子ではなく兄弟 (ともに D1 の子) なので誤り。1 階層上がるための「..」が抜け落ちた形であり、これに「..¥」を補ったものが正解の イ である。

ここがポイント
  • 相対指定の基本記号を機械的に適用する。「.」=カレントディレクトリ、「..」=1 階層上のディレクトリ。先頭が「¥」ならルートからの絶対指定、先頭が「¥」「.」「..」のいずれでもなければ左端に「.¥」が省略された相対指定 (=カレントディレクトリ配下) とみなす、という問題文の規則どおりに読むことが要点。
  • 図の親子関係を先に確定してから経路を組み立てる。本問では D3 と D2 が兄弟 (親は D1)、D4 は D2 の子なので、D3 から D4 へは「1 階層だけ上がって D2 → D4 と下る」経路になる。上がる回数を間違えると存在しない階層を指してしまう。
用語

解答の記録