ITパスポート 2014年 春期 問68
問題文
図に示す階層構造において、カレントディレクトリが*印のディレクトリであるとき、相対パス指定で..¥..¥B¥Bによって指定したディレクトリと同じディレクトリを絶対パス指定したものはどれか。
〔ディレクトリ及びファイルの指定方法〕
(1) ファイルは、“ディレクトリ名¥…¥ディレクトリ名¥ファイル名” のように、経路上のディレクトリを順に “¥” で区切って並べた後に “¥” とファイル名を指定する。
(2) カレントディレクトリは “.” で表す。
(3) 1階層上のディレクトリは “..” で表す。
(4) 始まりが “¥” のときは、左端にルートディレクトリが省略されているものとする。
(5) 始まりが “¥”、“.”、“..” のいずれでもないときは、左端にカレントディレクトリ配下であることを示す “.¥” が省略されているものとする。

選択肢
ア:¥A¥B¥B
イ:¥B
ウ:¥B¥B
エ:¥B¥B¥B(正解)
🔒 解説は解答すると表示されます
相対パス「..¥..¥B¥B」を絶対パスに直す問題【ITパスポート 解説】
正解の理由
この問題の正解は エ(¥B¥B¥B)です。
理由を簡単に言うと、カレントディレクトリ(現在作業中のフォルダ)である「A*」から「..」が1回で親ディレクトリ(ひとつ上のフォルダ)に移動します。さらにもう1回「..」で一つ上へ移動すると、ルート直下の「B」フォルダに到達します。そこから「B¥B」と下へ辿ると、結果はルート直下の「B」フォルダ配下の 「B」→さらにその「B」 つまり絶対パスで ¥B¥B¥B となるためです。
※用語補足
- カレントディレクトリ(current directory:現在作業しているフォルダ)
- ルートディレクトリ(root directory:階層の一番上のフォルダ)
- 親ディレクトリ(parent directory:一つ上の階層のフォルダ)
- 相対パス(relative path:現在の場所を基準にした指定)
- 絶対パス(absolute path:ルートを基準にした指定)
解法ステップ
- 図からカレントディレクトリ(A*)の絶対位置を確認する。
A* の絶対パスは ¥B¥A¥A(ルート→B→A→A)です。 - 相対パスの先頭「..」で1階層上へ移動する。
¥B¥A¥A の親は ¥B¥A になります。 - さらに「..」でさらに1階層上へ移動する。
¥B¥A の親は ¥B(ルート直下の B)になります。 - 残った「B¥B」をその位置以下に付け足す。
¥B に B¥B を付けると ¥B¥B¥B になります。
よって相対指定 ..¥..¥B¥B を絶対パスで表すと ¥B¥B¥B(選択肢 エ)です。
選択肢別の誤答解説
-
ア: ¥A¥B¥B
これはルート直下の A を起点にした経路です。今回の相対移動は右側の B 系列へ上がるため、ルート直下が A になることはありません。したがって誤りです。 -
イ: ¥B
¥B はルート直下の B(1階層目)だけを示します。相対パスで最終的に B¥B という2階層分を下るため、これだけでは階層が足りません。 -
ウ: ¥B¥B
ルート直下の B の下にある B(2階層目)を指しますが、相対指定はさらにもう1階層下(B¥B の下の B)まで指定しているため、これも階層が一つ不足しています。 -
エ: ¥B¥B¥B
ルート直下の B → その下の B → さらにその下の B、つまり3階層目まで辿った位置で、相対指定 ..¥..¥B¥B の解釈に一致します(正しい)。
よくある誤解
-
「.. を一つ書けばルートに戻れる」と考える
- 実際は「..」は1階層上に移動するだけで、ルートに戻るにはその回数分だけ .. を書く必要があります。今回のように2回必要な場合は ..¥.. とします。
-
相対パスの先頭に「¥」があれば相対で、なければ絶対、という逆の理解
- 正しくは先頭が「¥」なら絶対パス(ルート基準)、先頭が「.」「..」や何もなければ相対パス(カレント基準)です。
-
カレントディレクトリの階層を見誤る
- 図で「どのノードが何階層目か」を数え間違えると、.. の適用結果がずれて誤答になります。まず自分のカレント位置の絶対パスを書き出すと安全です。
補足コラム
- 覚え方のコツ:階層は「上がる(..)」なら数が減り、「下る(フォルダ名)」なら数が増える。
例えば「..¥..¥X¥Y」は「2回上がってから X→Y と下る」と読むだけです。 - 実際のOSではパス区切り文字が「¥(バックスラッシュ)」か「/(スラッシュ)」かは環境依存です。問題文では「¥」が区切り文字として使われています。
FAQ
Q1. 「.¥」が省略されるとどう読む?
A1. 先頭に何もないパス(例: A¥B)は「現在のディレクトリ以下の A¥B」と読みます。問題文の規則で .¥ は省略可能です。
A1. 先頭に何もないパス(例: A¥B)は「現在のディレクトリ以下の A¥B」と読みます。問題文の規則で .¥ は省略可能です。
Q2. 「..¥..¥..」が続いたらどうする?
A2. その回数だけ上に上がります。ルートを越えて上がる指定があれば、通常はルートのまま(それ以上上には行かない)かエラー扱いになる場面もありますが、試験問題では図の範囲内で考えます。
A2. その回数だけ上に上がります。ルートを越えて上がる指定があれば、通常はルートのまま(それ以上上には行かない)かエラー扱いになる場面もありますが、試験問題では図の範囲内で考えます。
Q3. カレントディレクトリの絶対パスが分からないときは?
A3. 図のルートから自分がどの枝を辿っているかを順に書き出してください。図を左から右へ数えるより、親ノードをたどる形で「ルート→…→現在地」を明示すると間違いが減ります。
A3. 図のルートから自分がどの枝を辿っているかを順に書き出してください。図を左から右へ数えるより、親ノードをたどる形で「ルート→…→現在地」を明示すると間違いが減ります。
関連キーワード: ファイルパス、相対パス、絶対パス、ルートディレクトリ、カレントディレクトリ、親ディレクトリ、パス区切り文字

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

