ファイル・パスとは
はじめに
コマンド・プロンプトに限った話ではありませんが、コマンドライン・ツールを扱う際、「カレント・ディレクトリ」の概念や、「絶対パス」「相対パス」を理解しておく必要があります。
このページでは、コマンドライン・ツールに触れるための事前知識として、Windowsのファイル・パスに関する解説をします。
Windowsのファイル・パスについて
Windows上にあるフォルダやファイルの保存場所のことを、「パス(path)」といいます。人によってはファイル・パスと呼ぶかもしれません。
例えば、デスクトップ上に保存した「test.txt」ファイルのパスは、C:\Users\bathi\Desktop\test.txt
となります。「bathi」の部分はWindowsのユーザ名のため、人によって値は異なります。
パスの概要や確認方法は、Windows10ですがNEC社LavieのFAQが分かりやすかったので参考にしてください。
ドライブ名
C:\Users\bathi\Desktop\test.txt
の「C:」の部分は、ドライブ名となります。ドライブ・レターと呼ぶこともあります。
Windows10以降は、基本はCドライブ1つしかありません。そのため、あまり意識する必要はありません。
外付けハードディスク等を接続すると、「D:」等、C以外のドライブが割り当てられます。この場合、D:\img\hakone.jpg
のように、C:以外のドライブのパスとなります。
区切り文字について
C:\Users\bathi\Desktop\test.txt
の、「C:」はドライブ名、「Users」「bathi」「Desktop」はフォルダ名、「test.txt」はファイル名です。
いずれも、「\」(バックスラッシュ)記号で区切られています。環境によっては、「\」と表示されるかと思います。表示の違いだけで、動作は同じです。
ドライブ名、フォルダ名、ファイル名は「\」(\)で区切るのがルールとなります。
Windowsでは日本語フォントだと「\」が「\」で表示される場合があります。しかし、内部的な値は同じです。
日本語対応キーボードでも、それぞれの記号の入力キーがありますが、同じ文字コードが割り当てられているため、どちらを入力しても同じ動作になります。
このチュートリアルでも混在するかもしれませんので、『「\」と「\」は同じもので、どちらを入力しても良い』と覚えていただければと思います。
詳細は大塚ビジネスサービス社のサイトが参考になると思います。
大文字と小文字の区別について
Windowsのファイル・パスでは、アルファベットの大文字と小文字は区別されません。c:\users\bathi
もC:\USERS\BATHI
も同じパスとして扱われます。
試しに、同じフォルダに「TEST.txt」と「test.txt」を作成してみてください。同じファイル名として扱われるため、保存できないことが確認できるはずです。
Linuxでは大文字と小文字は区別されます。
絶対パス(absolute path)
C:\Users\bathi\Desktop\test.txt
や、D:\img\travel
のように、対象のファイル/フォルダのパスをドライブ名から記述したものを絶対パス(absolute path)と呼びます。
相対パス(relative path)
現在いるフォルダを起点にパスを記述したものを相対パスと呼びます。
また、現在いるフォルダのことを、カレント・ディレクトリ(current directory)と呼びます。カレント・ディレクトリは「.
」(半角ピリオド)で表します。
例えばC:\Users\bathi\Desktop\test\path
のフォルダ構成が以下のとおりだったとします。
C:\Users\bathi\Desktop\test\path
│ メモ.txt
│
├─img
│ ├─2023
│ │ │ asakusa.jpg
│ │ │
│ │ └─hakone
│ │ 大涌谷.jpg
│ │ 湯本.jpg
│ │
│ └─2024
│ yodobashi.jpg
│
└─movie
birthday-party.mpeg
hakone-travel.mpeg
そして、カレント・ディレクトリは5行目の「2023」フォルダだとします。絶対パスでいうと、C:\Users\bathi\Desktop\test\path\img\2023
にいるということです。
2023フォルダを起点に、各ファイルやフォルダを表すと以下のとおりになります。
直下のファイルやフォルダ
「2023」フォルダ直下のファイルやフォルダの表し方を見ていきます。
- 6行目:
.\asakusa.jpg
- 8行目:
.\hakone
- 9行目:
.\hakone\大涌谷.jpg
- 10行目:
.\hakone\湯本.jpg
上述のとおり、カレント・ディレクトリは「.
」で表します。そして、フォルダ名やファイル名は「\
」で区切るのがルールなので、全て「.\
」からはじまっています。
1つ上の階層のファイルやフォルダ
次は「2024」フォルダを見てみます。
カレント・ディレクトリの1つ上の階層は、相対パスでは「..
」(ピリオド2つ)で表します。
「2024」フォルダは「img」フォルダの下にあります。「img」フォルダは、カレント・ディレクトリから見ると1つ上の階層にあるので、「..
」で表すことができます。
以上を踏まえると、以下のようになります。
- 12行目:
..\2024
- 13行目:
..\2024\yodobashi.jpg
「..
」が「img」フォルダを表しているのがポイントです。
より上の階層のファイルやフォルダ
次は「movie」フォルダを見てみます。
「movie」フォルダは「img」フォルダと同じ階層にあります。そのため、「2023」フォルダから見ると、1つ上の階層の「img」フォルダから、さらに1つ上の階層のフォルダ(「path」フォルダ)から表す必要があります。
2階層上は相対パスでは「..\..
」で表します。
- 15行目:
..\..\movie
- 16行目:
..\..\movie\birthday-party.mpeg
- 17行目:
..\..\movie\hakone-travel.mpeg
さらに上の階層の場合でも、考え方は同じです。
Linuxの場合
ここまではWindowsを前提に、ファイル・パスについて解説をしました。
しかし、Linuxの場合でもほぼ同じです。相違点は以下のとおりです。もしChromebookをお使いの場合は参考にしてください。
- 「C:」のようなドライブ・レターがない
- 区切り文字は「/」(普通のスラッシュ)
区切り文字はWindowsの「\」(バックスラッシュ)と似ていますので注意(?)してください。向きが逆です。
まとめ
ポイントをまとめます。
- パス: フォルダやファイルの保存場所の経路です。Windowsでは大文字と小文字は区別されません。
- 区切り文字: パスのドライブ名、フォルダ名、ファイル名を区切る文字です。Windowsの区切り文字は「\」です。「\」と表示される場合もありますが、同じです。
- 絶対パス: フォルダやファイルのパスを、ドライブ名から記述したものです。
- カレント・ディレクトリ: 現在いるフォルダ(=ディレクトリ)のことです。
- 相対パス: フォルダやファイルのパスを、カレント・ディレクトリを起点に記述したものです。カレント・ディレクトリは「.」で表します。一つ上の階層は「..」、2つ上の階層は「..\..」、3つ上の階層は「..\..\..」のように表します。