WindowsやMacなどのグラフィカルなインターフェイスに慣れていると、パスと聞いてもピンとこないかもしれません。
私がそうでした。
プログラミングでパスを扱う必要があり、理解できたのでこのページにまとめました。
パスとはなにか、絶対パス、相対パスの解説です。
UNIX系(Mac・Linux)の表し方をしています。
Windowsに関しては↓
パスとは
ファイルやディレクトリの場所を記述したものをパスと言います。
ファイルはなにかしらのディレクトリに入っていると思います。そのディレクトもまた別のディレクトリに収められています。
すると、階層構造のいちばん上にあって、すべてのディレクトリを収めているディレクトリが存在します。
それがルートディレクトリです。
パスでは「/」で表します。※「」は無視してください。
ルートの下にディレクトリが一つあって、名前が「fuji」だとします。
「/fuji/」となります。
さらにfujiの中にディレクトリを作成し、「test」と名付けました。
testのパスは「/fuji/test/」です。
このようにパスは階層ごとに /(スラッシュ)をつけて表します。
パスには「絶対パス」と「相対パス」の二種類の記述方法があります。
上記は絶対パスでの表し方でした。具体的に見ていきましょう。
絶対パス
絶対パスとは、ファイルやディレクトリの場所をルートから記述することを言います。
上の画像のような構成になっているとき、それぞれの絶対パスは以下になります。
- /fuji
- /fuji/images
- /fuji/documents
- /fuji/images/cat01.jpg
- /fuji/images/family
- /fuji/documents/manual.pdf
- /fuji/documents/works
階層が下にいくごとにスラッシュを付けて、ファイルやディレクトリの名前を書くだけです。
相対パス
相対パスとは、現在地のディレクトリ(カレントディレクトリ)を基準にパスを記述したものです。
カレントディレクトリは、ウインドウをいくつも開けるWindowsやMacでは馴染みがないかもしれませんが、キーボードで操作するCLI(コマンドラインインターフェイス)では自分が今いる場所というのが明確にならないと作業になりません。
このカレントディレクトリが2の「images」だとします。
この場合、4のjpgファイルの相対パスは、「cat01.jpg」
5のディレクトリは「family」となります。
カレントディレクトリ内にあるファイルやディレクトリの相対パスは、カレントディレクトリの絶対パス「/fuji/images/」の部分を省略した形になっています。
なので例えば、カレントディレクトリ内に新しくファイルを作成したいときは、Linuxのコマンド「touch(ファイルを作成)」を使用するなら、コンソール上で、
touch test.html
とすることで、images内に新しく、test.htmlを追加することができます。
さらに新しく追加したtest.htmlから4の画像を読む必要があったときには、パスの部分を"cat01.jpg"とすると読み込むことができます。
またカレントディレクトリはドット(.)で表すこともできます。
カレントディレクトリの下にあることを明示すると、4のパスは「./cat01.jpg」
5なら「./family」となります。
カレントディレクトリの親ディレクトリ(上にあるディレクトリ)はドット二つ(..)で表します。
なので親に当たる1、fujiの相対パスは「..」
3のdocumentsは「../documents」
6のpdfは「../documents/manual.pdf」です。
まとめ
パスについて記述してきました。
パスとは、ファイルやディレクトリの場所を記述したもの 。
絶対パスとは、ファイルやディレクトリの場所をルートから記述すること。
相対パスとは、カレントディレクトリを基準にしてパスを記述したもの。
いかがでしたか?
このページが少しでもお役に立ったのなら幸いです。