今回は、ディレクトリ管理について説明します。
ディレクトリ管理?
基本情報技術者試験で出題される「ディレクトリ管理」の問題。過去問を見ると難しく感じますが、ディレクトリ構造とパスの指定方法を知っていれば、難しい問題ではありません。
本記事では、「ディレクトリ管理」について解説しています。
スポンサーリンク
目次
ディレクトリ構造
コンピュータ上のファイルは、次のイメージのようにディレクトリ(フォルダ)と呼ばれる階層構造を持つ仕組みで管理されています。
ルートディレクトリとサブディレクトリ
ルートディレクトリとは、ファイル階層における最初または最上位のディレクトリのことで、ルートディレクトリ配下にあるディレクトリをサブディレクトリといいます。
ルートディレクトリは「/」で表現され、/etc、/usr、/varなど ルートディレクトリ配下にサブディレクトリが存在します。
下記はFHS 2.2で規定されたディレクトリ構成です。
/ ルートディレクトリ
|--- /bin 基本コマンド
|--- /boot 起動に必要なファイル
|--- /dev デバイスファイル
|--- /etc 設定ファイル
|--- /home ユーザーのホームディレクトリ
|--- /lib 共有ライブラリ
|--- /lib<qual>(オプション)
|--- /mnt 一時的なマウントポイント
|--- /opt 追加アプリケーション
|--- /proc(Linux固有) プロセス情報など
|--- /root(オプション) root用ホームディレクトリ
|--- /sbin システム管理用コマンドなど
|--- /tmp 一時的なファイル
|--- /usr 各種プログラムなど
|--- /var 変更されるデータ
カレントディレクトリ
カレントディレクトリとは、自分が今いるディレクトリのことです。
カレントとは「現在の」という意味の言葉です。
カレントディレクトリは「.」で表現されます。
例えば「./file3.txt」という表記は、カレントディレクトリ配下の「file3.txt」というファイルを指す相対パスです。
パスの指定方法
パスとは、パソコンの中に保存されているファイルやディレクトリの保存場所を示す経路のことです。
パスには「絶対パス」と「相対パス」があります。
絶対パス
絶対パスとは、ルートディレクトリから目的のファイル(またはディレクトリ)までのパスを示すものです。フルパスとも呼ばれています。
例えば、上記図の「test.csv」ファイルの絶対パスは「/home/test.csv」です。
ルートディレクトリは「/」で表現するので、「/home/test.csv」は、ルートディレクトリの中にある「home」ディレクトリの中にある「test.csv」と、絶対パスでルートディレクトリから目的地のファイルまでのパスを示しています。
相対パス
相対パスとは、カレントディレクトリから目的のファイル(またはディレクトリ)までのパスを示すものです。
例えば、上記図のカレントディレクトリは、devフォルダであり、「test.csv」ファイルの相対パスは「../home/test.csv」です。
カレントディレクトリは省略可能ですが、明示したい場合は「.」、一階層上位のディレクトリは「..」で表します。
「../home/test.csv」は、カレントディレクトリの一階層上のディレクトリの中にある「home」ディレクトリの中にある「test.txt」と、相対パスでカレントディレクトリから目的地のファイルまでのパスを示しています。
基本情報技術者試験 過去問の解説
基本情報技術者平成30年春期 午前問17
絶対パス名の説明として,適切なものはどれか、設問のア~エを順番に確認していきます。
ア:あるディレクトリから対象ファイルに至る幾つかのパス名のうち,最短のパス名
不正解:あるディレクトリから対象ファイルに至るパスは1つしかありません。最短・最長のパス名という概念は存在しません。
イ:カレントディレクトリから対象ファイルに至るパス名
不正解:相対パスの説明です。
ウ:ホームディレクトリから対象ファイルに至るパス名
不正解:絶対パスは、ホームディレクトリではなくルートディレクトリからから対象ファイルに至るパスです。※個人ディレクトリとは、ユーザーがログインしたときに最初に移動するディレクトリで、個人用のディレクトリのことです。
エ:ルートディレクトリから対象ファイルに至るパス名
正解:絶対パスの説明です。
「エ」が正解です。
基本情報技術者平成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ディレクトリに移動
「ア」が正解です。