みなさんは、ディレクトリという概念いついて理解していますか?
プログラミングをする上で必ず必要になる知識ですし、プログラミングの勉強をしようと思って書籍を買うと当たり前のように「ディレクトリ」という用語が出てくると思います。
まるで、「ディレクトリくらい知ってるでしょ!」と言わんばかりです。
こうなってしまっては、ディレクトリの知識は自分で調べなくてはないません。
しかし、一言で「ディレクトリ」といっても、カレントディレクトリやらホームディレクトリだか色々出てきて混乱します。
そこで今回は、「ディレクトリ」の解説とセットで出てきやすい用語の「パス」についてまとめていこうと思います。
ディレクトリとパスの知識は、プログラミングをする上でとても大切な知識になります。
というか、知らないとできないので「ディレクトリって知識必要なの?」「そもそもディレクトリって何?」「パ?ス?」という方は、この記事で基本をさらってしまいましょう。
そうすることで、これからの学習がスムーズに運ぶと思います。
目次
ディレクトリの簡単な解説
ディレクトリとは?
ディレクトリとは、コンピュータの書類やデータを階層的に管理している仕組みのことです。
みなさんの中には、ディレクトリ(フォルダ)の中にディレクトリ(フォルダ)を作ってその中に、自分が作った文書・表形式ファイルなどをまとめて、フォルダに管理している人がいるのではないでしょうか?
そのような方は、ファイルというものをディレクトリ(フォルダ)に保存しているのです。
「PC内でもの(ファイルや他のディレクトリなど)を入れておけるものをディレクトリ」と考えるとイメージしやすいかもしれません。
その構造全体を見ると階層的になっていて、よく言われるのは「ツリー構造」というものになっています。
上位のディレクトリがあって、その下位にディレクトリがあって、さらにその下位にディレクトリが・・・という具合に階層化されています。
このような具合を、木の枝や根の枝分かれしていくことに例えられ「ツリー構造」と呼ぶのです。
ここで、「ディレクトリ」という言葉を含んでよく出てくる用語を紹介したいと思います。
ルートディレクトリ
ルートディレクトリというものは、PC内の全てのディレクトリの「ボス」といったイメージです。
先ほどの、木の例え話の中で根っこのくだりが出てきましたが、木の中で根っこは根幹であり全ての構造の根源というイメージがあると思います。
それになぞられて、PC用語の中ではよく根源の仕組み・機能を「ルート・・・」とルートという言葉がよく出てきます。
ルートディレクトリも他の全てのディレクトリを下位に持ち、ルートディレクトリの上の階層はありません。
(MacOSの方は)ターミナルでcd /
でルートディレクトリに移動できます。
ホームディレクトリ
ホームディレクトリは、ログインして最初にいるディレクトリです。
(MacOSの方は)ターミナルでcd ~
でホームディレクトリに移動できます。
カレントディレクトリ
カレントディレクトリは、今現在作業をしているディレクトリのことです。
カレントは、日本語にすると「現在」という意味ですからそのままの意味ですね。「現在のディレクトリ」です。
カレントディレクトリは、別名「カレントワークディレクトリ」というものもありますが、こちらは覚えなくても大丈夫です。
(MacOSの方は)ターミナルでpwd
でカレントディレクトリが表示されます。
パスとは?
パスとは、PC内のファイルやディレクトリがどこにあるかということを示したものです。
また、パスとは日本語にすると「道」というものになって、目的のディレクトリやファイルにいくための「道筋」という考え方もできるかもしれません。
例を出すと、Cというディレクトリがどこにあるのかという場合、/A/B/C/
というようなパスになります。
ルートパス
ルートパスは、ルートディレクトリの位置を示したものです。
ルートディレクトリの説明の時にルートディレクトリはPC内のディレクトリ構造の最上位に位置するものでした。
つまりルートパスは、PC内のルートディレクトリの場所から、特定のディレクトリやファイルの位置を見たときのパスです。
相対パス
相対パスとは、相対的なパス。相対的というのは、他と比較することで初めて成り立つようなものという意味です。
つまりは相対パスは、「今自分のいるディレクトリから見て、他のディレクトリはどこにあるのか」という見方です。
絶対パス
絶対パスとは、絶対的なパスです。
相対と絶対は対義語の関係であるところからも考えられる通り、絶対パスは他のディレクトリとは関係なく、そのディレクトリ自身がどこに存在しているのかということを示します。
コラム:ディレクトリとフォルダの違い
「ディレクトリとフォルダは何が違うのか?」というのは、よくある疑問です。
結論を言ってしまうと、「同じもので呼び名が違う」だけということです。
呼び名が生まれて、今まで使われてきた場面が少しだけ違うことから呼び名は違いますが、基本的に概念も同じですし、同じものと考えていいでしょう。
まとめ
今回は単調な用語の説明のようになってしまいましたが、上にあげた用語はプログラミングをする上では、必ず必要になってくる知識なので早いうちに知っておく必要があります。
今は用語と意味がかみ合わなくても、何度も出てくる単語なので、今覚えておいて損はないと思います。
コメントを残す