基本情報技術者

【基本情報技術者試験】ディレクトリ管理(ディレクトリとパス)

今回は、ディレクトリ管理について説明します。

ディレクトリ管理?

問題

ファイルシステムの絶対パス名を説明したものはどれか。

  • ア:あるディレクトリから対象ファイルに至る幾つかのパス名のうち,最短のパス名
  • イ:カレントディレクトリから対象ファイルに至るパス名
  • ウ:ホームディレクトリから対象ファイルに至るパス名
  • エ:ルートディレクトリから対象ファイルに至るパス名

基本情報技術者平成30年春期 午前問17

問題

A,Bという名の複数ディレクトリが,図に示す構造で管理されている。"¥B¥A¥B"がカレントディレクトリになるのは,カレントディレクトリをどのように移動した場合か。ここで,ディレクトリの指定は次の方法によるものとし,→は移動の順序を示す。

〔ディレクトリ指定方法〕

  • (1) ディレクトリは,"ディレクトリ名¥…¥ディレクトリ名"のように,経路上のディレクトリを順に"¥"で区切って並べた後に"¥"とディレクトリ名を指定する。
  • (2) カレントディレクトリは,"."で表す。
  • (3) 1階層上のディレクトリは,".."で表す。
  • (4) 始まりが"¥"のときは,左端にルートディレクトリが省略されているものとする。
  • (5) 始まりが"¥",".",".." のいずれでもないときは,左端に".¥"が省略されているものとする。
ディレクトリ構成

ア:¥A → ..¥B → .¥A¥B イ:¥B → .¥B¥A → ..¥B ウ:¥B → ¥A → ¥B エ:¥B¥A → ..¥B

基本情報技術者平成29年春期 午前問18 ※画像は過去問を参考に作成したものです。

基本情報技術者試験で出題される「ディレクトリ管理」の問題。過去問を見ると難しく感じますが、ディレクトリ構造とパスの指定方法を知っていれば、難しい問題ではありません。

本記事では、「ディレクトリ管理」について解説しています。

本記事で学べること

  • ディレクトリ構造(カレントディレクトリ・ルートディレクトリ)についてを理解する
  • パスの指定方法(絶対パス・相対パス)について理解する
  • 基本情報技術者試験の過去問の解き方を学ぶ

スポンサーリンク

ディレクトリ構造

コンピュータ上のファイルは、次のイメージのようにディレクトリ(フォルダ)と呼ばれる階層構造を持つ仕組みで管理されています。

ディレクトリとは、コンピューター上でファイルなどを入れる「入れ物」のこと。ディレクトリはUNIX系OSでの呼び方、WidowsやMacではフォルダと呼ぶ。

ディレクトリ構成

ルートディレクトリとサブディレクトリ

ルートディレクトリとは、ファイル階層における最初または最上位のディレクトリのことで、ルートディレクトリ配下にあるディレクトリをサブディレクトリといいます。

ルートディレクトリは「/」で表現され、/etc、/usr、/varなど ルートディレクトリ配下にサブディレクトリが存在します。

下記はFHS 2.2で規定されたディレクトリ構成です。


/	 	ルートディレクトリ
|---	/bin	基本コマンド
|---	/boot	起動に必要なファイル
|---	/dev	デバイスファイル
|---	/etc	設定ファイル
|---	/home	ユーザーのホームディレクトリ
|---	/lib	共有ライブラリ
|---	/lib<qual>(オプション)
|---	/mnt	一時的なマウントポイント
|---	/opt	追加アプリケーション
|---	/proc(Linux固有)	プロセス情報など
|---	/root(オプション)	root用ホームディレクトリ
|---	/sbin	システム管理用コマンドなど
|---	/tmp	一時的なファイル
|---	/usr	各種プログラムなど
|---	/var	変更されるデータ

Memo

  • ルートディレクトリ:階層構造の最上位にあるディレクトリのこと
  • サブディレクトリ:ルートディレクトリ以外のディレクトリのこと

カレントディレクトリ

カレントディレクトリとは、自分が今いるディレクトリのことです。

カレントとは「現在の」という意味の言葉です。

カレントディレクトリは「.」で表現されます。

例えば「./file3.txt」という表記は、カレントディレクトリ配下の「file3.txt」というファイルを指す相対パスです。

カレントディレクトリのイメージ図

Memo

  • カレントディレクトリ:現在操作中(現在いる場所)のディレクトリのこと

パスの指定方法

パスとは、パソコンの中に保存されているファイルやディレクトリの保存場所を示す経路のことです。

パスには「絶対パス」と「相対パス」があります。

絶対パス

絶対パスとは、ルートディレクトリから目的のファイル(またはディレクトリ)までのパスを示すものです。フルパスとも呼ばれています。

絶対パスのイメージ例

例えば、上記図の「test.csv」ファイルの絶対パスは「/home/test.csv」です。

ルートディレクトリは「/」で表現するので、「/home/test.csv」は、ルートディレクトリの中にある「home」ディレクトリの中にある「test.csv」と、絶対パスでルートディレクトリから目的地のファイルまでのパスを示しています。

Memo

  • 絶対パス:ルートディレクトリから目的のファイル(またはディレクトリ)までのパスを示すもの

相対パス

相対パスとは、カレントディレクトリから目的のファイル(またはディレクトリ)までのパスを示すものです。

相対パスのイメージ図

例えば、上記図のカレントディレクトリは、devフォルダであり、「test.csv」ファイルの相対パスは「../home/test.csv」です。

カレントディレクトリは省略可能ですが、明示したい場合は「.」、一階層上位のディレクトリは「..」で表します。

「../home/test.csv」は、カレントディレクトリの一階層上のディレクトリの中にある「home」ディレクトリの中にある「test.txt」と、相対パスでカレントディレクトリから目的地のファイルまでのパスを示しています。

Memo

  • 相対パス:カレントディレクトリから目的のファイル(またはディレクトリ)までのパスを示すもの

基本情報技術者試験 過去問の解説

基本情報技術者平成30年春期 午前問17

問題

ファイルシステムの絶対パス名を説明したものはどれか。

  • ア:あるディレクトリから対象ファイルに至る幾つかのパス名のうち,最短のパス名
  • イ:カレントディレクトリから対象ファイルに至るパス名
  • ウ:ホームディレクトリから対象ファイルに至るパス名
  • エ:ルートディレクトリから対象ファイルに至るパス名

基本情報技術者平成30年春期 午前問17

絶対パス名の説明として,適切なものはどれか、設問のア~エを順番に確認していきます。

Memo

絶対パス:ルートディレクトリから目的のファイル(またはディレクトリ)までのパスを示すもの

ア:あるディレクトリから対象ファイルに至る幾つかのパス名のうち,最短のパス名

不正解:あるディレクトリから対象ファイルに至るパスは1つしかありません。最短・最長のパス名という概念は存在しません。

イ:カレントディレクトリから対象ファイルに至るパス名

不正解:相対パスの説明です。

ウ:ホームディレクトリから対象ファイルに至るパス名

不正解:絶対パスは、ホームディレクトリではなくルートディレクトリからから対象ファイルに至るパスです。※個人ディレクトリとは、ユーザーがログインしたときに最初に移動するディレクトリで、個人用のディレクトリのことです。

エ:ルートディレクトリから対象ファイルに至るパス名

正解:絶対パスの説明です。

「エ」が正解です。

基本情報技術者平成29年春期 午前問18

問題

A,Bという名の複数ディレクトリが,図に示す構造で管理されている。"¥B¥A¥B"がカレントディレクトリになるのは,カレントディレクトリをどのように移動した場合か。ここで,ディレクトリの指定は次の方法によるものとし,→は移動の順序を示す。

〔ディレクトリ指定方法〕

  • (1) ディレクトリは,"ディレクトリ名¥…¥ディレクトリ名"のように,経路上のディレクトリを順に"¥"で区切って並べた後に"¥"とディレクトリ名を指定する。
  • (2) カレントディレクトリは,"."で表す。
  • (3) 1階層上のディレクトリは,".."で表す。
  • (4) 始まりが"¥"のときは,左端にルートディレクトリが省略されているものとする。
  • (5) 始まりが"¥",".",".." のいずれでもないときは,左端に".¥"が省略されているものとする。
ディレクトリ構成

ア:¥A → ..¥B → .¥A¥B イ:¥B → .¥B¥A → ..¥B ウ:¥B → ¥A → ¥B エ:¥B¥A → ..¥B

基本情報技術者平成29年春期 午前問18 ※画像は過去問を参考に作成したものです。

目的のディレクトリ「¥B¥A¥B」の位置は以下です。

目的地

設問のア~エを順番に確認し、目的のカレントディレクトリにたどり着けるパスを探します。

ア:¥A → ..¥B → .¥A¥B

正解

  • ¥A(絶対パス):ルートディレクトリ配下のAディレクトリに移動
  • ..¥B(相対パス):カレントディレクトリから一階層上のディレクトリにもどり、配下のBディレクトリに移動
  • .¥A¥B(相対パス):カレントディレクトリ配下のAディレクトリ移動、さらにAディレクトリ配下のBディレクトリに移動
回答ア

イ:¥B → .¥B¥A → ..¥B

不正解

  • ¥B(絶対パス):ルートディレクトリ配下のBディレクトリに移動
  • .¥B¥A(相対パス):カレントディレクトリ配下のBディレクトリ移動、さらにBディレクトリ配下のAディレクトリに移動
  • ..¥B(相対パス):カレントディレクトリから一階層上のディレクトリにもどり、さらに配下のBディレクトリに移動
回答イ

ウ:¥B → ¥A → ¥B

不正解

  • ¥B(絶対パス):ルートディレクトリ配下のBディレクトリに移動
  • ¥A(絶対パス):ルートディレクトリ配下のAディレクトリに移動
  • ¥B(絶対パス):ルートディレクトリ配下のBディレクトリに移動
回答ウ

エ:¥B¥A → ..¥B

不正解

  • ¥B¥A(絶対パス):ルートディレクトリ配下のBディレクトリに移動、さらにBディレクトリ配下のAディレクトリに移動
  • ..¥B(相対パス):カレントディレクトリから一階層上のディレクトリにもどり、さらに配下のBディレクトリに移動
回答エ

「ア」が正解です。

helpful