パス(またはファイルパス、ファイルパス、パス名など)は、階層型ファイルシステム内の項目を一意に識別する文字列です。通常、パスはディレクトリ名、特殊なフォーマット指定子、およびオプションでファイル名で構成され、すべて区切り文字で区切られます。この区切り文字はオペレーティングシステムによって異なりますが、一般的な最新のシステムではスラッシュ、バックスラッシュ、またはコロンが 使用されます/\:
個々のパス構成要素の大文字と小文字の区別は、オペレーティングシステムによって、またはファイルシステムの作成時または初回使用時に指定されたオプションによって変わります。実際には、大文字と小文字を区別するcomponent1システムでは、とという名前のパス構成要素がComponent1階層内の同じレベルに共存できますが、大文字と小文字を区別するファイルシステムでは共存できません(エラーが発生します)。macOSとWindowsのネイティブファイルシステムはデフォルトで大文字と小文字を区別しませんが、一般的なLinuxファイルシステムは大文字と小文字を区別します。[ 1 ] [ 2 ] [ 3 ]
パスは相対パスと絶対パスのどちらかです。相対パスは、別のパス(通常は作業ディレクトリ)を基準としたパスです。絶対パスは、現在のディレクトリとは関係なく、ファイルシステムのルートから始まるすべてのパス要素を指定するもので、相対パスのようにコンテキストに依存しません。
パスは、 URLやUNC パスに見られるように、階層的に編成されたネットワーク リソースを見つけるためにも不可欠です。
歴史
Multicsは、1960年代半ばにディレクトリ(「>」で区切られた)を備えた階層型ファイルシステムを初めて導入しました。 [ 4 ]
1970 年頃、Unix は/ディレクトリ区切り文字として スラッシュを導入しました。
もともと、MS-DOSはディレクトリをサポートしていませんでした。この機能を追加する際に、多くの既存コマンドがスイッチのプレフィックスとしてスラッシュを使用していたため、Unix標準のスラッシュを使用することは適切な選択肢ではありませんでした(例:dir /w)。対照的に、Unixはスイッチのプレフィックスとしてダッシュを使用します。最終的に、スラッシュとの類似性と既存のコマンドと競合しないという理由から、-バックスラッシュが選択されました。この慣習はWindowsにも引き継がれました。ただし、 PowerShellなど、Windowsの一部の領域ではUnixスタイルのスラッシュも受け入れまたは理解します。[ 5 ] [ 6 ]\
システムの概要
次の表は、主要なオペレーティングシステムにおけるパスの構文を示しています
| システム | ルートディレクトリ | パス区切り | 作業ディレクトリ | 親ディレクトリ | ホームディレクトリ | 例 |
|---|---|---|---|---|---|---|
| UnixおよびUnix系システム(macOSを含む) [ 7 ] | / | / | 。 | .. | ~ | /home/user/docs/Letter.txt ./child ../../greatgrandparent ~/.rcinfo |
| Windows、コマンドプロンプト | \ (現在の作業ディレクトリのルートからの相対)または[ドライブ文字]:\または\\.\または\\?\または UNC | / [ a ]または\ | 。 | .. | C:\user\docs\Letter.txt /user/docs/Letter.txt C:\user\docs\somefile.ext:代替ストリーム名 C:picture.jpg \\?\UNC\Server01\user\docs\Letter.txt \\.\COM1 | |
| PowerShell | [ドライブ文字]:/または[ドライブ名]:\または[PSSnapIn名]\[PSProvider名]::[PSドライブのルート]または UNC | / [ a ]または\ | 。 | .. | ~ | C:\user\docs\Letter.txt ~\Desktop UserDocs:/Letter.txt変数:PSVersionTableレジストリ::HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft.PowerShell.Security\Certificate::CurrentUser\ |
| UNC [ 8 ] | \\[サーバー名]\[共有名]\ | / | \\Server01\user\docs\Letter.txt | |||
| DOS、COMMAND.COM | [ドライブ文字]:\または\\[サーバー名]\[ボリューム]\ | \ | 。 | .. | C:\USER\DOCS\LETTER.TXT A:PICTURE.JPG \\SERVER01\USER\DOCS\LETTER.TXT | |
| OS/2 | [ドライブ文字]:\または\\[サーバー名]\[ボリューム]\ | /または\ | 。 | .. | C:\user\docs\Letter.txt A:Picture.jpg \\SERVER01\USER\docs\Letter.txt | |
| RSX-11 MCR [ 9 ] | [デバイス名]: | DR0:[30,12]LETTER.TXT;4 [ b ] | ||||
| TOPS-20 DCL [ 10 ] | [デバイス名]: | 。 | 追伸:<USER.DOCS>LETTER.TXT,4 | |||
| OpenVMS DCL [ 11 ] [ 12 ] | [デバイス名]:[000000]または[NODE["アカウント名 パスワード"]]::[デバイス名][000000]: | 。 | [] | [-] | SYS$LOGIN: | NODE$DISK:[USER.DOCS]PHOTO.JPG USER:[000000]000000.DIR []IN_THIS_DIR.COM; [-.-]GreatGrandParent.TXT SYS$SYSDEVICE:[.DRAFTS]LETTER.TXT;4 GEIN::[000000]LETTER.TXT;4 SYS$LOGIN:LOGIN.COM |
| ProDOS AppleSoft BASIC [ 13 ] | /[ボリュームまたはドライブ名]/ | / | /SCHOOL.DISK/APPLEWORKS/MY.REPORTフライトシミュレーター D2 | |||
| AmigaOS Amiga CLI / AmigaShell [ 14 ] | [ドライブ、ボリューム、デバイス、または名前の割り当て]: | / | 空の文字列 | / | ワークベンチ:ユーティリティ/マルチビューDF0:S/スタートアップシーケンスS:スタートアップシーケンスTCP:en.wikipedia.com/80 | |
| RISC OS ShellCLI [ 15 ] | [fsタイプ[#オプション]:][:ドライブ番号またはディスク名]$ [ c ] | 。 | @ | ^ | & | ADFS::MyDrive.$.Documents.Letter Net#MainServer::DataDrive.$.Main.sy10823 LanMan::WindowsC.$.Pictures.Japan/gif NFS:&.!Choices ADFS:%.IfThere @.inthisdir ^.^.greatgrandparent [ d ] |
| Symbian OSファイルマネージャー | \ | \ | \user\docs\Letter.txt | |||
| ドメイン/OSシェル[ 16 ] | // (ドメインのルート)または/ (現在のノードのルート) | / | 。 | \ | ~ | //node/home/user/docs/Letter.txt ./inthisdir \\greatgrandparent ~rcinfo |
| メニューエットOSコマンド | / | / | /ファイル | |||
| Stratus VOS CLI | %[システム名]#[モジュール名]> | > | < | %sysname#module1>サブディレクトリ>別のディレクトリ | ||
| ノンストップカーネルTACL [ e ] | 。 | \NODE.$DISK.SUBVOL.FILE \NODE.$DEVICE \NODE.$DEVICE.#SUBDEV.QUALIFIER | ||||
| CP/M CCP [ 17 ] | [ドライブ文字:] | サブディレクトリなし、ユーザー領域0~Fのみ | A:LETTER.TXT | |||
| GS/OS | :[ボリューム名]:または.[デバイス名]:または[プレフィックス]: [ f ] | :または/ | @ | :Apps:Platinum.Paint:Platinum.Paint *:System:Finder .APPLEDISK3.5B/ファイル | ||
| OpenHarmonyの幹部、Oniro、HarmonyOSを含む[ 18 ] [ 19 ] | hb set -root [ROOT_PATH]またはhb set -p --product [PRODUCT_NAME] | > または / | ./ | ../ | LOCAL/MEDIA_TYPE_/Download/Letter.txt | |
プログラミング言語において
ほとんどのプログラミング言語は、基盤となるシステムのパス表現を使用しますが、システムに依存しない言語もあります
たとえば、次の C コードはシステムに依存しており、他のシステムでは失敗する可能性があります。
uxFile = fopen ( "project/readme.txt" , "r" ) // Windows では失敗します。winFile = fopen ( "C: \\ Program Files \\ bin \\ config.bat" , "r" ) // Unix では失敗します。import java.io.File ; import java.nio.file.Path ; import java.nio.file.Paths ; // ... File file = new File ( "path" + File .separator + "file.txt" ); Path path = Paths.get ( "path" , " file.txt" ) ;
pathlibからPathをインポート( Path ( "path" ) / "to" / "file.txt" ) . open ()をopen_fileとして実行します: ...
Unixの場合
ほとんどのUnix系システムは同様の構文を使用しています。[ 22 ] POSIXでは、2つのスラッシュで始まるパスを実装定義の方法で扱うことができますが、[ 23 ]他の場合には、システムは連続するスラッシュを1つとして扱う必要があります。[ 24 ]
Unix 系システム上の多くのアプリケーション (たとえば、scp、rcp、rsync ) は、 などのリソース定義hostname:/directorypath/resource、またはのようなサービス名 (ここでは「smb」)を含むURIスキームを使用します。 smb://hostname/directorypath/resource
macOSの場合
macOSの開発中、クラシック Mac OSとUnix 系NeXTSTEPからパス名の選択肢をいくつか継承しました。クラシック Mac OS は を使用し、:UnixとUnix 系システムは を/パス区切り文字として使用します。ソフトウェアの互換性とユーザーの慣れを維持し、ディスクファイルシステムをクラシック Mac OS と macOS の両方で使用できるようにするために、解決策として、macOS の一部ではパス名のコロンとスラッシュを変換します。[ 25 ]たとえば、クラシック Mac OS の HFS+ ファイルシステムは、ファイル名のコロンをスラッシュに変換し、ディレクトリを読み込むときにはファイル名のスラッシュをコロンに変換します。[ 26 ]また、Carbonツールキットはパス名のコロンをスラッシュに、パス名のスラッシュをコロンに変換し、呼び出し元にファイル名とパス名を提供するときにはそれらを逆に変換します。[ 26 ]
DOSとWindowsの場合

DOS と Windows には単一のルート ディレクトリはありません。各ストレージ ドライブごとにルートが存在し、ドライブ文字または UNC によって示されます。
ディレクトリ名とファイル名の比較では大文字と小文字は区別されません。「test.TXT」は「Test.txt」と一致します。[ 27 ]
Windows は次の種類のパスを認識します。
- などのローカル パス
C:\File。 - 汎用命名規則 (UNC)。
- DOSデバイスパス( または など
\\?\C:\File)\\.\UNC\Server\Volume\File。前者は\\?\パスの正規化を省略します。後者は\\.\rawデバイスの名前空間を使用します。[ 27 ] [ 28 ]
Windows APIでは、ファイルI/O関数は自動的/に に変換されます\(\\?\プレフィックスを使用する場合を除く)。プレフィックスが使用されていない場合、パスはMAX_PATH\\?\で定義された長さに制限されます。この変数はWindows 10まではデフォルトで260文字でしたが、Windows 10では32,767文字まで拡張されました。[ 29 ]
PowerShellは後方互換性のためにスラッシュ相互運用性を許可している: [ 30 ]
PS C :\> Get-Content -Path "C:/path/to/file.txt"これはファイル内のテキストです円/ウォンの文字エラー
日本語版と韓国語版のWindowsでは、ディレクトリ区切り文字の代わりに「¥」文字や「₩」文字が表示されることが多かった。これは、ANSIコードページでは0x5Cの文字がバックスラッシュであるのに対し、日本語と韓国語のコードページではそれぞれ円記号とウォン記号であったためである。そのため、バックスラッシュの文字が使用されると、他のグリフが表示されることがあった。[ 31 ]
汎用命名規則
Microsoft汎用命名規則(UNC、統一命名規則、またはネットワークパス)は、共有ファイル、ディレクトリ、プリンターなどのネットワークリソースの場所を記述するための構文です。UNCパスの一般的な形式は次のとおりです
\\コンピュータ名\共有フォルダ\リソース
一部のWindowsインターフェースでは、 WebDAV共有アクセスにURLではなくUNC構文が許可または要求されます。UNC構文は、SSLの使用とTCP/IPポート番号を示すためのオプションコンポーネントで拡張されています。したがって、のWebDAV URLはhttps://hostname:443/SharedFolder/Resourceとなります\\hostname@SSL@443\SharedFolder\Resource。[ 32 ]
リモートから見ると、「SharedFolder」の名前は、サーバー上のプログラムが「\SharedFolder」を開いたときに表示される名前と異なる場合があります。実際には、SharedFolder の名前は共有の作成時に割り当てられた任意の名前です。
UNCは2つのバックスラッシュで始まり、バックスラッシュはエスケープシーケンスや正規表現にも使用されるため、「傾きつまようじ症候群」が発生する可能性があります。UNCに一致する正規表現のエスケープ文字列は、文字列と正規表現の両方でエスケープが必要となるため、8つのバックスラッシュで始まります。これは、 C#、Python 、Perlなどのraw文字列を\\\\\\\\使用することで簡素化できます。 @"\\\\"r'\\\\'qr{\\\\}
参照
- basename – パスから姓を抽出するシェルコマンド
- デバイスファイル – ファイルシステムに表示されるデバイスドライバへのインターフェース
- dirname – パスからディレクトリパス部分を抽出するシェルコマンド
- 分散ファイルシステム – 分散ファイルシステムの種類リダイレクト先の簡単な説明を表示するページ
- ファイル名 – コンピュータファイルを一意に識別するために使用されるテキスト文字列
- ファイルシステム階層標準 – ディレクトリ構造の Linux 標準
- 完全修飾ファイル名 – コンピュータコード内での明確な名前リダイレクト先の簡単な説明を表示するページ
- PATH(変数) – コンピュータ環境変数
- URL – ワールドワイドウェブ上のアドレス
注記
参考資料
- ^ 「Macのディスクユーティリティで利用できるファイルシステムフォーマット」 Appleサポート。2025年9月12日閲覧macOSのデフォルトのファイルシステムであるAPFSの説明が含まれています
- ^ Matt Wojciakowski. 「大文字と小文字の区別」 . learn.microsoft.com . 2025年9月12日閲覧。
Windows ファイルシステムでは、ファイル名とディレクトリ名の大文字と小文字は区別されません。FOO.txt と foo.txt は同じファイルとして扱われます。Linux ファイルシステムでは、ファイル名とディレクトリ名の大文字と小文字が区別されます。FOO.txt と foo.txt は異なるファイルとして扱われます。
- ^ Day, Brittany. 「Linuxファイルシステムの大文字と小文字の区別に関する議論を理解する」 Linuxセキュリティ. 2025年9月12日閲覧。
Linuxにおける大文字と小文字の区別とは、ファイルとディレクトリにおいてファイル名の大文字と小文字の違いを認識することです。例えば、「File.txt」と「file.txt」はそれぞれ異なるファイルとして扱われます。この概念は、Linuxを含むUnix系オペレーティングシステムに不可欠なものです。
- ^ Daley, RC; Neumann, PG (1965). 「二次記憶装置のための汎用ファイルシステム」. 1965年11月30日~12月1日開催の秋季合同コンピュータ会議議事録、第1部 XX - AFIPS '65 (秋季、第1部) . 第1巻、第1部、pp. 213– 229. doi : 10.1145/1463891.1463915 . S2CID 16236414 .
- ^ 「なぜ Windows ではバックスラッシュが使用され、その他すべてではスラッシュが使用されるのか」 2014 年 2 月 10 日。
- ^ 「なぜ DOS パス文字は "\" なのでしょうか?」 2005 年 6 月 24 日。
- ^ 「ファイルシステムの基礎」 . developer.apple.com . 2018年4月9日. 2025年9月7日閲覧。
- ^ 「UNCネットワーク共有アクセス(Windows)」www.ibm.com . 2025年9月7日閲覧。
- ^ RSX-11M-PLUS MCR操作マニュアル、RSX-11M-PLUSバージョン4.0(PDF)。Digital Equipment Corporation。1987年8月。2.2 ファイル仕様。AA-JS12A-TC。
- ^ Herkert, Mark Klause Herman; Smith, Sheri Lynn (1985年12月).国防データネットワーク/TOPS-20チュートリアル. 対話型コンピュータプログラム(PDF) (技術レポート).
- ^ Rabe, Bernhard (2011年6月6日). 「AlphaおよびVAX上のOpenVMSとDCL」(PDF) .
- ^ 「VSI OpenVMS ユーザーズマニュアル」(PDF) . VMSソフトウェア. 2025 . 2025年9月7日閲覧。
- ^ ProDOS ユーザーズマニュアル. Apple Computer . 1983年. 56~ 62頁.
- ^ AmigaDOSマニュアル。Commodore-Amiga, Inc.発行。Bantam Computer Books。1986年2月。6 ~ 16ページ。ISBN 978-0-553-34294-9。
{{cite book}}: CS1 メンテナンス: その他 (リンク) - ^ 「RISC OS PRM:第2巻:第44章:ファイルシステムの作成」 www.riscos.comテクニカルサポート:プログラマーズ・リファレンス・マニュアル3QD Developments Ltd. 2015年11月3日2025年9月7日閲覧
- ^ 「ドメイン/OS入門」 (PDF) . Apollo Computer . 1988年5月. pp. 7-1 – 7-7 .
- ^ CP/Mオペレーティングシステムマニュアル(第3版). Digital Research . 1983年9月.
- ^ 「シェルの紹介」 . GitHub . OpenAtom OpenHarmony . 2024年3月13日閲覧。
- ^ "exec" . GitHub . OpenAtom OpenHarmony . 2024年3月14日閲覧。
- ^ 「Java Development Kit バージョン 17 API 仕様」 . docs.oracle.com . 2025年9月7日閲覧。
- ^ "os.path — 一般的なパス名操作" . Pythonドキュメント. 2025年9月7日閲覧。
- ^ 「UNC定義」 . ComputerLanguage.com .
- ^ 「POSIX パス名解決仕様」。
- ^ 「POSIX パス名定義」。
- ^ Chan, Alex (2021年12月1日). 「2つのパスセパレーターの物語」 . alexwlchan.net . 2025年9月7日閲覧。
- ^ a b Sanches, Wilfredo (2000). 「UnixとMac OS環境の統合における課題」 .
- ^ a b De George, Andy (2022年12月14日). 「Windowsシステムのファイルパス形式」 . Microsoft Docs . 2019年7月14日閲覧。
- ^ Ashcraft, Alvin (2024年8月28日). 「ファイル、パス、名前空間の命名」 . Microsoft Docs .
- ^ Ashcraft, Alvin (2024年7月16日). 「最大パス長制限 - Win32 アプリ」 . learn.microsoft.com . 2025年9月7日閲覧。
- ^ Wheeler, Sean. 「about_Path_Syntax - PowerShell」 . learn.microsoft.com . 2025年9月7日閲覧。
- ^ 「バックスラッシュがバックスラッシュでないのはいつですか?」すべてを整理する。
- ^ 「DavGetHTTPFromUNCPath 関数」 . WebDAV: Windows. Microsoft Docs . シリーズ. 2021年10月13日. 2023年10月4日閲覧。