ファイルをフォルダ(ディレクトリ)の階層で整理して管理する仕組み。
ディレクトリ構造とは、ファイルをディレクトリ(=フォルダのこと)の階層で整理して管理する仕組みです。ルートを起点に、ディレクトリとファイルが枝分かれする形は「木構造(ツリー)」と呼ばれます。
身近な例で考えると、本棚の整理に似ています。「棚 → 段 → ジャンル別の仕切り → 本」と分けておけば、何百冊あっても目的の本にすぐたどり着けます。ファイルをただ1か所に山積みにせず、フォルダで分類するイメージです。
上のツールで▶ボタンを押すと、ルートディレクトリから順にサブディレクトリ、さらに下層、そして最後にファイルへと、階層を1段ずつ降りていく様子を確認できます。
ファイルをフラット(1段)に並べるのではなく、階層(多段)にして管理すると、次のような利点があります。
・関連ファイルをまとめられる:同じ目的のファイルを1つのディレクトリに集約できる
・同名ファイルを別ディレクトリに置ける:パス全体が違えば同じ「memo.txt」でも区別できる
・目的のファイルを探しやすい:分類をたどれば候補が絞り込まれていく
・アクセス権をディレクトリ単位で管理できる:フォルダごとに「誰が読み書きできるか」をまとめて設定できる
同名ファイルが共存できる点は特に重要です。たとえば /home/taro/memo.txt と /home/hana/memo.txt は、ファイル名は同じでもパスが違うため別物として扱われます。フラットな管理では、こうした同名は許されません。
書類を「年度 → 部署 → 案件」のフォルダに分けてしまっておくと探しやすいのと同じで、階層化は整理整頓のしやすさそのものを生み出します。
ディレクトリ構造があるおかげで、大量のファイルも体系的に整理できます。何万個のファイルがあっても、フォルダで段階的に分類されているため、人もコンピュータも迷わずたどれます。
さらに重要なのは、パス(経路)でファイルの位置を一意に指定できることです。ルートから目的のファイルまでの道のりをつなげた文字列がパスで、たとえば /home/taro/memo.txt は世界に1つの場所を指します。
住所が「都道府県 → 市区町村 → 番地」とたどれば1軒に決まるのと同じで、パスをたどれば必ず1つのファイルにたどり着く――この一意性が、確実なファイル管理を支えています。
ファイルの場所を表す「パス」には、2つの書き方があります。どちらも同じファイルを指せますが、起点が異なります。
絶対パス(=いつでもルートから全部書いたパスのこと)は、必ず/(ルートディレクトリ)から始まります。どこにいても通じる「住所の完全形」です。
例:/home/taro/memo.txt
相対パス(=今いる場所を起点にしたパスのこと)は、現在地からの道のりを書きます。今 /home にいるなら taro/memo.txt と省略できます。
・.(ドット1つ)=「今いるディレクトリ」
・..(ドット2つ)=「1つ上のディレクトリ」
なぜ2種類あるのか。絶対パスはどこにいても必ず通じる一方、長くなりがちです。相対パスは短く書けますが、今いる場所によって意味が変わります。用途に合わせて使い分けると、ファイルの指定がシンプルになります。
ルートディレクトリ(=木構造の根っこになる最上位のディレクトリのこと)は、ファイルシステム全体の起点です。すべてのファイルとディレクトリは、ルートを頂点とする1本の木の中に収まっています。Unix系OSでは /(スラッシュ1文字)で表します。
なぜルートが必要か。起点がないと「どこから数えるか」が人によってバラバラになり、パスの意味が一致しません。全員が同じルートを起点にすることで、どのパソコンでも同じパスが同じファイルを指すという共通の約束が成り立ちます。
身近な例で考えると、地図の「基準点(=ここが(0, 0)」に相当します。基準点があるから「北に3km、東に2km」という指示が誰にとっても同じ場所を意味するように、ルートがあるから /home/taro というパスが誰のパソコンでも同じ意味を持ちます。