跳到正文

平成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」,「..」连续出现了两次。依据指定方法(3),第一个「..」把位置从 D3 上移到 D1,但第二个「..」会再向上一层,也就是指向图中并不存在的 D1 的上级目录。从那里无法下到 D2,因而到不了目标文件 a,所以错误。向上只需一层即可。

  • イ

    正解 正确答案是 イ。首先确定图中的父子关系。最上层是 D1,其正下方并列着 D2 和 D3,D2 的正下方有 D4 和 D5。也就是说 D3(当前目录)与 D2 是兄弟目录,共同的父目录是 D1,而目标的 D4 是 D2 的子目录。因此从 D3 前往 D4 下的文件 a 的路径是「向上一层到 D1 → 下到 D2 → 下到 D4 → a」。把它套用到指定方法上:向上一层依据指定方法(3)写作「..」,其后按指定方法(1)把路径上的目录名用「¥」分隔依次排列,最后再加上「¥」和文件名 a,于是就得到「..¥D2¥D4¥a」。由于它的开头是「..」,指定方法(5)的「.¥」补全不会生效,会按写出的样子被解释为从当前目录的上一层开始的相对指定。因此 イ 正确。

  • 错误ウ

    「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 的子目录),所以错误。这是漏掉了表示向上一层的「..」的形式,给它补上「..¥」就是正确答案 イ。

ここがポイント
  • 机械地套用相对指定的基本符号:「.」=当前目录,「..」=上一层目录。开头是「¥」时是从根目录开始的绝对指定;开头既不是「¥」也不是「.」「..」时,视为左端省略了「.¥」的相对指定(=位于当前目录之下)。严格按照题干给出的规则去解读,正是本题的要点。
  • 先确定图中的父子关系,再组装路径。本题中 D3 与 D2 是兄弟目录(父目录都是 D1),D4 是 D2 的子目录,所以从 D3 到 D4 的路径是「只向上一层,然后依次下到 D2 → D4」。向上的次数弄错,就会指向并不存在的层级。
用語
解答問57イ
练这一题

作答记录