基本情報技術者 2014年 秋期 午前(科目A) 問19
問題文
ファイルシステムの絶対パス名を説明したものはどれか。
選択肢
ア:あるディレクトリから対象ファイルに至る幾つかのパス名のうち、最短のパス名
イ:カレントディレクトリから対象ファイルに至るパス名
ウ:ホームディレクトリから対象ファイルに至るパス名
エ:ルートディレクトリから対象ファイルに至るパス名(正解)
ファイルシステムの絶対パス名を説明したものはどれか。【午前2 解説】
要点まとめ
- 結論:絶対パス名はルートディレクトリ(ファイルシステム最上位)から開始し、対象ファイルまたはディレクトリへ至る完全な経路を表し、常に一意に位置を特定できる。
- 根拠:ルートを起点とする表記はカレントディレクトリに依存せず、どの位置から参照しても同じ資源を指すため再現性と信頼性が高い。
- 差がつくポイント:先頭表現を確認すること。UNIXは先頭が '/'、Windowsはドライブ文字と ''、'~' はホームの短縮で絶対とは限らない点に注意する。
正解の理由
正解は エ です。エの「ルートディレクトリから対象ファイルに至るパス名」は、絶対パス名の定義そのものです。
絶対パスはファイルシステムの最上位(ルート)を起点に書かれるため、どの作業ディレクトリ(カレントディレクトリ)から参照しても同一のファイルやディレクトリを指します。これが「絶対」の意味です。
絶対パスはファイルシステムの最上位(ルート)を起点に書かれるため、どの作業ディレクトリ(カレントディレクトリ)から参照しても同一のファイルやディレクトリを指します。これが「絶対」の意味です。
よくある誤解
- 「最短のパス」が絶対パスという誤解:アの「最短のパス」は経路の長さに関する表現であり、絶対性とは無関係です。
- カレントディレクトリ起点を絶対と誤認:イの「カレントディレクトリからのパス」は相対パスで、参照元によって指す先が変わります。
- '~'(チルダ)をそのまま絶対と考える誤り:チルダはホームディレクトリの短縮表現で、展開後は絶対パスになるが記述自体は特殊記号です。
解法ステップ
- 問題文で「絶対パス名」の定義を思い出す(ルート起点かどうか)。
- 各選択肢の起点を確認する(ルート、カレント、ホーム、最短)。
- 「ルート起点」である選択肢が絶対パスの定義に一致するか照合する。
- 一致すれば正解、そうでなければ誤りと判断する。
選択肢別の誤答解説
- ア: あるディレクトリから対象ファイルに至る幾つかのパス名のうち、最短のパス名
→ 「最短」は経路の長さの話であり、絶対か相対かを示す条件ではありません。誤り。 - イ: カレントディレクトリから対象ファイルに至るパス名
→ これは相対パスの定義です。カレントディレクトリに依存するため絶対パスではありません。誤り。 - ウ: ホームディレクトリから対象ファイルに至るパス名
→ ホーム起点はユーザ固有の起点であり、「~」で表されることが多いが記述自体は相対的・ショートカット的。厳密な絶対パスの定義とは異なります。誤り。 - エ: ルートディレクトリから対象ファイルに至るパス名
→ ルート起点で書かれるためどこから参照しても同一を指す、これが絶対パスの定義です。正解:エ
補足コラム
- UNIX系では絶対パスは先頭が '/' で始まります(例:/etc/passwd)。Windowsでは "C:\Windows\system32" のようにドライブ名+区切りで表します。
- チルダ(~)はシェルがホームディレクトリへ展開する短縮表記で、展開後は絶対パスになりますが記述上は特殊表現です。
- シンボリックリンクやマウントポイントがあると、絶対パスでも実体がどこにあるかが複雑になるため「正規化(canonicalize)」の概念が重要です。
コード例(パスの例)
# UNIXの例(絶対パス) /home/user/documents/report.txt # 相対パスの例(カレントが /home/user の場合) documents/report.txt # Windowsの例(絶対パス) C:\Users\User\Documents\report.txt
FAQ
Q. "/" や "C:" は絶対パスですか?
A. はい。ルートそのもの("/" や "C:")は絶対パスの一例で、ルートからのパスは常に絶対です。
A. はい。ルートそのもの("/" や "C:")は絶対パスの一例で、ルートからのパスは常に絶対です。
Q. "~/.bashrc" は絶対パスですか?
A. 記述上はチルダ展開を伴う短縮表現ですが、シェルが展開すると絶対パス(例:/home/user/.bashrc)になります。
A. 記述上はチルダ展開を伴う短縮表現ですが、シェルが展開すると絶対パス(例:/home/user/.bashrc)になります。
Q. 絶対パスと相対パス、どちらを使うべきですか?
A. 再現性やスクリプトの安定性が重要なら絶対パス。柔軟性や移動に伴う記述の簡潔さが必要なら相対パスを使います。
A. 再現性やスクリプトの安定性が重要なら絶対パス。柔軟性や移動に伴う記述の簡潔さが必要なら相対パスを使います。
関連キーワード: 絶対パス、相対パス、ルートディレクトリ、カレントディレクトリ、ホームディレクトリ、UNIX、Windows、パス表記、シンボリックリンク、正規化

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

