パソコンを使うとき、いまだに避けて通れないのが「パス」だ。最近では、基本的なことを学ぶことなく、すぐにスマホやパソコンを使ってしまうため、「パス」についても断片的な知識しかない人もいるはず。そこで、今回はパスを見直してみることにする。
パスとは、簡単に言えば、「ファイルやディレクトリ」を指定する方法だ。すべてのパスとディレクトリには必ずパスがある。なお、以前解説したように、ディレクトリはフォルダーの1種だが、ファイルシステムの上に作られるものに限定される。これについては以前解説した(「Windowsにおけるフォルダーとディレクトリとは」)。
パスを説明する前に、Windowsにおける「ドライブ」「ボリューム」「パーティション」「ディスク」について解説しておく。これがWindowsの外部記憶装置(ストレージあるいはストレージデバイスともいう)の基本概念である。
「ディスク」(Disk)とは外部記憶装置を指す。このディスクの記憶領域を分割したものが「パーティション」(Partition)、パーティションを特定のファイルシステムで初期化すると「ボリューム」(Volume)ができる。ボリュームをマウントしたものが「ドライブ」(Drive)で、これにドライブ文字を割り当てることができる。
ようやくパスについての話
パスは、ファイルシステム(ボリューム)のファイルやディレクトリを指し示すための表記方法だ。すべてのファイル、ディレクトリにはパスがあり、これで1つに特定される。パスは、以下のような構造となる。
〈ドライブ文字〉〈ディレクトリの名前〉〈パス区切り文字〉……〈パス区切り文字〉〈ファイルの名前〉
〈ドライブ文字〉〈ディレクトリの名前〉〈パス区切り文字〉……〈ディレクトリの名前〉
まずは、ファイルとディレクトリの名前である。ファイルやディレクトリには、必ず名前がある。名前には利用できない文字があるが、逆に言えば、利用できない文字を使わなければ、漢字でもASCII文字でもなんでもよい。
文字 | コード | 名称 |
---|---|---|
\ | 0x5C | 円マーク |
⁄ | 0x2F | スラッシュ |
: | 0x3A | コロン |
* | 0x2A | アスタリスク |
? | 0x3F | 疑問符 |
" | 0x22 | 2重引用符 |
> | 0x3E | 大なり不等号 |
< | 0x3C | 小なり不等号 |
| | 0x7C | 縦棒、バー |
パスとは、ドライブ文字とルートディレクトリから始めて、ファイルやディレクトリが存在するディレクトリまでに通過するディレクトリ名をパス区切り文字で区切って並べたものだ。
1つのパスの長さには、260文字という制限がある。原則として、コマンドなどにパスを渡すような場合には、この制限を超えないようにする。ディレクトリ階層の深さなどは関係なく、パス文字列の長さが制限となる。なお、パス文字列は必ず最後にヌル文字を含むため、見た目の長さは259文字である。
Windowsの内部的には、パスの表記方法を変更することで、最大32767文字の拡張パスを扱えるようになっている。しかし、パスを最初に扱うのはアプリケーションなので、実際に長いパスをどう扱うのかはアプリケーションに依存する。
このパスをネットワーク共有しているファイルやディレクトリの指定ができるように拡張したものが「UNC」(Universal Naming Convention)で「\\サーバー名\共有名\パス」という構造を持つ。
カレントディレクトリを活用する
コマンドラインで長いパスを扱うのは面倒なので「カレントディレクトリ」、あるいは「ワーキングディレクトリ」という機能がある。これは、特定のディレクトリを記憶し、そこまでのパスを省略した相対的なパスでファイルやディレクトリを指定可能にするものだ。
これは、コマンドラインインタプリタ(シェル)が持つ機能であり、最終的にはファイルやディレクトリはフルパスに変換されて処理されている。コマンドラインに慣れると、カレントディレクトリを「現在位置」として認識できるようになる。逆にいうと、コマンドラインを使うときにカレントディレクトリを現在位置として認識できないと、パス指定を正しく記述できない。
カレントディレクトリに設定されたディレクトリまでのパスには、「.」という略記方法が使える。また、親ディレクトリは「..」と表記できる。たとえば、カレントディレクトリにあるDIRというサブディレクトリの「file01.txt」は、「.\DIR\File01.txt」と表記できる。あるいは「.\」を省略して「DIR\File01.txt」とすることもできる。
ドライブ文字やルートディレクトリから表記したパスを「フルパス」といい、カレントディレクトリを基準にしたパスを「相対パス」と言う。フルパスは、ドライブ指定文字またはドライブ区切り文字から始まるが、相対パスは、ピリオドまたは直接ディレクトリ名、ファイル名から始まる。
また、ディレクトリやファイルの名前にスペースが含まれる場合、常にパスをシングルクオート(PowerShellやbash)やダブルクオート(cmd.exe)でくくる必要がある。
この連載の記事
-
第467回
PC
Copilot+ PCのNPUでカメラを処理する「Windows Studio Effects」 その内容や効果は? -
第466回
PC
PowerToysの最近の新機能には、複数アプリを指定位置に起動する「ワークスペース」や新規作成のカスタマイズがある -
第465回
PC
WindowsのPowerShellからBluetoothデバイスを調べる -
第464回
PC
Windows 10のサポート切れまで1年を切った さてWindows 10マシンをどうする? -
第463回
PC
Windows Terminal Preview版でSixelグラフィックスを実際に表示させてみる -
第462回
PC
Windows Terminal Preview版でSixelグラフィックスを扱う -
第461回
PC
Copilot+ PCを買ってみたが、「今焦って買う必要はない」のかもしれない -
第460回
PC
Windowsでsftpを使う -
第459回
PC
WSL 2.4.4ではtar形式でのディストリビューションが配布でき、企業での利用が容易になってきた -
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる - この連載の一覧へ