本文へスキップ

平成24年度 秋期 ITパスポート試験 問63

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

問63
頻出度★☆☆

図に示す階層構造で,複数個の同名のディレクトリ A,B が配置されており,ユーザ ID ごとにログインしたときのカレントディレクトリが異なる。U0002 がログインした直後に,矢印が示すディレクトリ B に存在するファイル f を指定するものはどれか。ここで,ファイルの指定方法とユーザ ID 別のカレントディレクトリは次のとおりである。 〔ファイルの指定方法〕 (1) “ディレクトリ名¥ … ¥ディレクトリ名¥ファイル名”のように,経路上のディレクトリを順に“¥”で区切って並べた後に“¥”とファイル名を指定する。 (2) カレントディレクトリは“.”で表す。 (3) 1階層上のディレクトリは“..”で表す。 (4) 始まりが“¥”のときは,左端のルートディレクトリが省略されているものとする。 〔ユーザ ID 別カレントディレクトリ〕

ユーザ IDログイン時のカレントディレクトリ
U0001¥A¥B
U0002¥A¥B¥A

(図:ルートの下に A と B が配置されている。A の下に A と B が配置され,その B の下にさらに A と B が配置されている。ルート直下の B の下には A と B が配置されている。矢印はルート直下の B を指している。)

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

問 63

  • 不正解ア

    「.」はカレントディレクトリそのもの(¥A¥B¥A)を指すので、これは ¥A¥B¥A¥B¥f を意味します。図では ¥A¥B¥A の下に子ディレクトリは描かれておらず、そもそも矢印の B(ルート直下)とは別の位置です。上位へ戻る「..」が 1 つも無いため、階層を上がれていません。

  • 不正解イ

    「..」1 回で 1 階層だけ上がるので ¥A¥B までしか戻れず、これは ¥A¥B¥B¥f を意味します。図の ¥A¥B の下にも確かに B はありますが、それは A の下の B の中にある B であり、矢印が示すルート直下の B ではありません。同名でも位置が違えば別ディレクトリです。

  • 不正解ウ

    「..¥..」で 2 階層上がると ¥A に着くため、これは ¥A¥B¥f を意味します。この ¥A¥B は U0001 のログイン時カレントディレクトリであり、矢印が示すルート直下の B とは異なります。ルートまで戻るにはあと 1 回「..」が必要です。

  • エ

    正解 U0002 のログイン直後のカレントディレクトリは ¥A¥B¥A で、ルートから数えて 3 階層下にあります。一方、目標のファイル f があるのは矢印が示す「ルート直下の B」です。相対指定では「..」が 1 階層上を表すので、¥A¥B¥A から「..」で ¥A¥B、もう一度「..」で ¥A、さらに「..」でルートに到達します。つまり「..¥..¥..」でルートまで戻り、そこから「¥B¥f」でルート直下の B とその中のファイル f を指定できます。したがって エ の「..¥..¥..¥B¥f」が正解です。ポイントは、同名ディレクトリ A・B が階層のあちこちにあるため、名前ではなく「ルートからの位置(経路)」で区別する必要がある点です。

ここがポイント
  • カレントディレクトリを起点とする相対パスでは「.」が現在位置、「..」が 1 階層上を表す。目的地がルート側にある場合は、カレントディレクトリの深さの分だけ「..」を重ねて共通の親(ここではルート)まで戻り、そこから下へたどる。
  • 同名のディレクトリが複数存在する階層構造では、ディレクトリ名だけでは一意に決まらない。ルートからの経路(絶対パス)で位置を確認したうえで、相対パスに置き換えて考えるとよい。
用語

解答の記録