絶対パスと相対パス
- 著者:YAMANJO
- 公開日:2008年7月9日
- 最終更新日:2024年12月4日
OSのファイルシステムでは、ファイルやフォルダをディレクトリで管理していることを学習してきましたが、階層構造の中では、どのように位置を特定しているのでしょうか。その手段であるパスについて学習していきましょう。
パスとは何か
ディレクトリに登録されている情報によって、OS(ファイルシステム)はファイルやフォルダの位置を正確に把握しています。
エクスプローラー表示で、その階層構造のイメージを見てとることができますが、実際にファイルの位置はどのように登録されているのでしょうか?
例えば、前項で学習したショートカットアイコンをクリックすると、その本体であるアプリケーションソフトが起動します。したがって、ショートカットアイコンは、本体の位置を示す方法を保持していることになります。実際にはどちらも同じ情報によってファイル位置を特定しています。
前項でも少し触れましたが、それは、
パス
という記述方法になります。
パスとは、ファイルシステム内の住所のようなものです。「pass」ではなく「path」の意味で、道や経路を意味します。つまり、目的地にたどり着くための道筋を記したものです。
住所には一定の書き方があるように、パスにも書き方があります。一見すると難しそうな文字列ですが、慣れてくれば簡単に理解することができます。下図は、前項と同じパスのイメージです。
詳しくは後述しますが、ルートフォルダである「C」からたどって、どのフォルダの中にあるのかを示しています。この場合では「C」ドライブの中の「Program Files」フォルダの中という階層を示しています。
階層は、円マーク「¥」やスラッシュ「/」でフォルダを区切って表します。
ここで少し脱線しますが、本来パスはすべて半角表記です。ブラウザなどの環境によって「円マーク:¥」と「バックスラッシュ:\」が区別して表示されない場合があるため、本項ではあえて大文字の「¥」記号を用いています。
これは、同じ文字コードが使われているためで、ファイルシステム内部ではすべてバックスラッシュが使われています。日本語環境では「¥」のほうが身近なために、こちらが表面的に使われているということになります。(文字コードについては、文字コードとは で詳しく学習します)
話を戻すと、通常は上図の記述方式を目にすることがほとんどだと思います。ただし、他にもパスの記述方法があります。パスにもいくつか種類があるということですが、重要な記述方法は2種類のみです。
それは、
絶対パスと相対パス
です。
上記の記述方法は絶対パスです。相対パスについては、あまり馴染みがない記述方法かもしれませんが、文字どおり相対的な位置関係を表現する方法になります。
これも詳しくは後述しますが、相対パスは特にウェブサイトを作成する場合には必須の知識になります。インターネットの知識を深めたい方は、必ず習得しておきましょう。
パスを読み書きすることができれば、ファイルをダウンロードしたり、ソフトウェアをインストールするときに役立ちます。
なぜなら、
インストール(保存)するときにそのファイルのパスが決まる
からです。
保存するときにデータがファイルとしてまとめられると学習しましたが、同時に保存先のフォルダを指定するため、パスも決定しているということです。
ソフトウェアなどをインストールするときは、たいていの場合「ウィザード」というナビゲーションにしたがって、次へ次へとすすんでいくことでインストールが完了します。
ウィザードによって自動的に保存先のフォルダも指定されており、特に変更しなければスタンダードな「Program Files」フォルダなどへ保存されることになります。
パスの知識があれば、どこに保存されるのかを的確に把握することができ、また保存先を任意に変更することもできます。
絶対パス
もっともメジャーなパスの記述形式で、「フルパス」とも呼ばれます。
フルパスは、
ルートフォルダを起点として目的のファイルがどこにあるかを記述する方法
になります。
ルートから表記するということは、最上位からすべてを「フル」で表記するということです。
Microsoft Edgeというアプリケーションソフトを例にして、本体の実行ファイルが保存してある階層の絶対パスを記述すると、以下のようになります。
C:¥Program Files (x86)¥Microsoft¥Edge¥Application¥msedge.exe
最上位のルートフォルダは、ストレージの論理的な区画であるドライブ(C)なので「C:」から記述し、フォルダごとに円マーク「¥」で区切って行きます。DドライブなどのCドライブ以外に保存されている場合は、最初の記述が「C:」ではなく「D:」になります。
この絶対パスを解読すると、「C」ドライブの中の「Program Files (x86)」フォルダの中の「Microsoft」フォルダの中の「Edge」フォルダの中の「Application」フォルダの中の「msedge.exe」というファイルが、Microsoft Edgeの実行ファイルになります。
Windowsの機能である「ファイル名を指定して実行」を利用して実験してみましょう。Windowsロゴボタン上で右クリックし「ファイル名を指定して実行」を選択すると起動することができます。
同パスを入力して「OK」ボタンを選択すると、Microsoft Edgeを直接起動させることができます。
次に「デスクトップ」フォルダをパスで指定して開いてみましょう。デスクトップ画面ではなく、ディレクトリの中に保存されている本来のデスクトップフォルダです。
パスはOS等の環境によって異なるので、デスクトップ画面に「右クリック」→「新規作成」→「フォルダー」から適当にフォルダを作成し、そのフォルダをさらに「右クリック」した画面に表示されるパスを入力してみましょう。
ボカシ処理している部分は「ユーザー名」の部分で、お使いのパソコンのユーザー名によって名称が異なります。この部分はコピーできるので、パスをコピーして「ファイル名を指定して実行」画面に貼り付けます。
そして「OK」ボタンをクリックして、デスクトップフォルダが新たなウィンドウで開くことを確認してください。正しく開けない場合はパスの記述が間違っていることになります。
また、先述のとおり円マーク「¥」を「/」に変えても問題ありません。円マーク「¥」をスラッシュ「/」に変更してみましょう。
変更して「OK」ボタンをクリックし、同じようにデスクトップフォルダが開くことを確認してください。
さらに絶対パスでは、最初のドライブの記述を省略することもできます。
つまり「C:」を省略して、スラッシュ「/」または円マーク「¥」から記述しても同様にデスクトップフォルダが開きます。(スラッシュでは開けない場合があります)
本来、円マーク「¥」はWindowsでの表記で、スラッシュ「/」はUNIXというOSでの表記になりますが、スラッシュから始まる絶対パスの記述方法は、ウェブサイトの作成時にも用いられます。
例えば、「/yamanjo/index.html」という表記は絶対パスになりますが、最初のスラッシュがルートフォルダを示しています。したがって、最上位のフォルダにある「yamanjo」というフォルダの中の「index.html」というファイルのパスになります。
補足すると、ウェブサイトのアドレス表記である「URL」も絶対パスとされることがありますが、アドレス表記は絶対URLであり、絶対パスとは厳密には異なります。(URIとは で詳しく学習します)
相対パス
現在、操作中のフォルダを「カレントフォルダ」と言います。基本的には開いている、表示されているフォルダのことです。(ファイルシステム内においては「カレントディレクトリ」になります)
相対パスは、
カレントフォルダを起点として目的のファイルがどこにあるかを記述する方法
になります。
イメージが難しいと思いますが、自分の現在位置から見て、目的のファイルまでの道のりを表現する方法です。例えば、A駅という場所のパスを記述するとしましょう。
絶対パスは、最上位からの位置を記述するので、通常の住所のように「日本国→県→市→番地」とフルで記述していきます。そのため、書き方は1通りしかありません。
相対パスは、自分の位置から目的地までの道のりを記述します。この場合では「次の信号を右→その次を左→その次は直進」というような書き方をします。
そのため、目的地が同じA駅であっても、自分の位置(カレントフォルダ)が異なれば相対パスの表記も変わってきます。したがって、書き方は1通りではありません。相対的な位置関係とは、このように基準とするものからどのように見えるかを意味します。
具体的な記述方法は、カレントフォルダをピリオドひとつ「.」、1つ上の階層のフォルダをピリオドふたつ「..」で表し、フォルダをスラッシュ「/」または円マーク「¥」で区切ります。
下図を例にして考えてみましょう。「path」フォルダの中に「path1」「path2」「path3」があり、「path1」の中に「path1-1」があります。「path2」と「path3」も同様です。
カレントフォルダが「path3-3」の場合、「path1-1」の相対パスは、
../../path1/path1-1
と記述することができます。
カレントフォルダ「path3-3」から「path1-1」をみると、1つ上の階層に「path3」があって、その上の階層の「path」の中に「path1」があって、その中に「path1-1」があるという見方をします。
つまり2階層上になり、「../../」から記述していくということになります。続けて「../../path1/path1-1」となります。
今度は、カレントフォルダが「path」の場合の「path2-2」の相対パスです。
./path2/path2-2(path2/path2-2)
カレントフォルダを「./」で表し、その下層の「path2」と続きます。
相対パスにおいても、カレントフォルダの記述は省略することができます。カレントフォルダである「./」を省略すると、その中の「path2」から記述して「path2/path2-2」とすることができます。
ただし、注意が必要なのは「/」も省略しないと絶対パスの記述になってしまうので、ピリオドとスラッシュの両方を省略し、フォルダ名から記述する必要があります。
相対パスは、ウェブサイトの作成においてサイト内の各ページへのリンクを設定するときによく用いられます。なぜ、このような記述方法が用いられるのかというと、単純に記述量が短くてすむからです。
絶対パスの場合、自分の現在位置を知らなくても目的のファイルへ到達することができるというメリットがあります。ルートからの道のりを示しているため、どのフォルダからでも(カレントフォルダがどこであっても)同じ記述で同じファイルを指定することができます。しかし、すべてのリンク先をフルパスで記述する必要があります。
一方、自分の現在位置がわかっている場合には、リンク先を相対パスで記述した方が、絶対パスよりも記述量が少なくてすみます。そのため、多くのリンクを扱う場合は効率的にコードを記述することができます。
また、ウェブファイルを保存するサーバを変更してしまうと、絶対パスは変わることがほとんどですが、相対パスで記述している場合は、相対的な位置関係が変わらないかぎり、そのまま使えるというメリットがあります。
こうしたパスの知識はパソコンを使いこなすうえで必須の知識となります。
しかし、それほど難解なわけではなく慣れだけの問題です。いろいろなショートカットアイコンを右クリックして「プロパティ」からパスを参照してみてください。
更新履歴
- 2008年7月9日
- ページを公開。
- 2009年3月26日
- ページをXHTML1.0とCSS2.1で、Web標準化。レイアウト変更。
- 2018年1月24日
- ページをSSL化によりHTTPSに対応。
- 2024年12月4日
- 内容修正。
著者プロフィール
YAMANJO(やまんじょ)
- 経歴
- 岡山県出身、1980年生まれ(申年)の♂です。現在、総合病院で電子カルテなどの情報システム担当SEとして勤務。医療情報学が専門ですが、ネットワーク保守からプリンタの紙詰まり、救急車の運転手までこなしています。
- 医療情報技師、日本DMAT隊員。ITパスポート、シスアドなど、資格もろもろ。
- 趣味は近所の大衆居酒屋で飲むこと、作曲(ボカロP)、ダイビング。
- 関連リンク
- 詳細なプロフィールはこちら
- 作成したボカロ曲などはYoutubeへ
- X(Twitter)
