路徑 (電腦科學)

路徑（path）是一種電腦檔案或目錄的名稱的通用表現形式，它指向文件系統上的一個唯一位置。指向一個文件系統位置的路徑通常採用以字串表示的目錄樹分層結構，首個部分表示文件系統位置，之後以分隔字符分開的各部分路徑表示各級目錄，最後是該文件/文件夾。分隔字符最常採用斜線（/）、反斜線（\）或冒號（:）字符，不同作業系統與環境可能採用不同的字符。路徑在電腦科學中被廣泛採用，用以表示現代作業系統中常見的文件夾/文件關係，在構建統一資源定位符（URL）時也必不可少。資源可以採用絕對路徑表示，也可採用相對路徑表示。

## 絕對與相對路徑

絕對路徑也可稱完整路徑，是指向文件系統中某個固定位置的路徑，不會因當前的工作目錄而產生變化。為做到這點，它必須包括根目錄。

相對路徑則是以指定的工作目錄作為基點，避開提供完整的絕對路徑。檔案名稱就可以被視為以指定工作目錄為基點的一個相對路徑（雖然一般不將其稱之為路徑）。

## 各作業系統與shell中路徑的表示法

作業系統｜Shell｜根目錄｜目錄分隔符｜當前目錄｜父目錄｜家（Home）目錄｜示例

類Unix系統｜Unix shell｜`/`｜`/`｜`.`｜`..`｜`~`｜`/home/user/docs/Letter.txt``./inthisdir``../../greatgrandparent``~/.rcinfo`

DOS｜COMMAND.COM｜`''[驱动器号:]''\`或 `\\''[服务器名称]''\''[卷]''\`｜`\`｜`.`｜`..`｜`C:\USER\DOCS\LETTER.TXT``A:PICTURE.JPG` `\\SERVER01\USER\DOCS\LETTER.TXT`

OS/2｜cmd.exe｜`''[驱动器号:]''\`｜`/`或`\`｜`.`｜`..`｜`C:\user\docs\Letter.txt` `A:Picture.jpg`

Microsoft Windows｜cmd.exe｜`\`（相對於當前工作目錄的根）或`''[驱动器号]'':\`or `\\''[服务器]''\''[共享名称]''\`或`\\?\''[drive_spec]'':\`或`\\?\''[服务器]''\''[共享名称]''\`or `\\?\UNC\''[服务器]''\''[共享名称]''\`or `\\.\''[物理设备]''\`｜`/`或`\`｜`.`｜`..`｜`C:\user\docs\Letter.txt``/user/docs/Letter.txt``C:Letter.txt``\\Server01\user\docs\Letter.txt``\\?\UNC\Server01\user\docs\Letter.txt``\\?\C:\user\docs\Letter.txt``<span style="white-space:nowrap;">C:\user\docs\somefile.ext:alternate_stream_name</span>` `./inthisdir``../../greatgrandparent`

Microsoft Windows｜Windows PowerShell｜`''[驱动器名称:]''/`或`''[驱动器名称:]''\`or `\\''[服务器名称]''\` or `''[PSSnapIn名称]''\''[PSProvider名称:][:PSDrive根]''`｜`/`或`\`｜`.`｜`..`｜`~`｜`C:\user\docs\Letter.txt``\\Server01\user\docs\Letter.txt``cd ~\Desktop` `UserDocs:/Letter.txt` `Variable:PSVersionTable` `Registry::HKEY_LOCAL_MACHINE\SOFTWARE\` `Microsoft.PowerShell.Security\Certificate::CurrentUser\`

TOPS-20｜DIGITAL命令語言｜`''[驱动器名称:]''`｜`.`｜`PS:<USER.DOCS>LETTER.TXT,4`

RSX-11｜`''[驱动器名称:]''`｜`DR0:[30,12]LETTER.TXT;4`

OpenVMS｜`''[驱动器名称:]''[000000]` or `''[NODE["账号名 密码"]]''::''[驱动器名称]''[000000]:`｜`.`｜`[]`｜`[-]`｜`SYS$LOGIN:`｜`SYS$SYSDEVICE:[USER.DOCS]PHOTO.JPG` `[]IN_THIS_DIR.COM;` `[-.-]GreatGranParent.TXT` `SYS$SYSDEVICE:[.DRAFTS]LETTER.TXT;4` `GEIN::[000000]LETTER.TXT;4` `SYS$LOGIN:LOGIN.COM`

Classic Mac OS｜`''[卷或驱动器名称]'':`｜`:`｜`:`｜`::`｜`Macintosh HD:Documents:Letter``:fileincurrentdir``::fileinparent``:::fileingrandparent`

ProDOS｜AppleSoft BASIC｜`/''[卷或驱动器名称]''/`｜`/`｜`/SCHOOL.DISK/APPLEWORKS/MY.REPORT` `FLIGHT.SIMULATOR,D2`

AmigaOS｜Amiga CLI / AmigaShell｜`''[驱动器、卷、设备或分配名称]:''`｜`/`｜`""` (empty string)｜`/`｜`Workbench:Utilities/MultiView``DF0:S/Startup-Sequence``S:Startup-Sequence``TCP:en.wikipedia.com/80`

RISC OS｜ShellCLI｜`''[fs type[#option]:][:驱动器名或光盘名]''$` 註：&、%和@也可以用來引用當前使用者的根目錄、庫和當前（工作）目錄。｜`.`｜`@`｜`^`｜`&`｜`ADFS::MyDrive.$.Documents.Letter``Net#MainServer::DataDrive.$.Main.sy10823``LanMan::WindowsC.$.Pictures.Japan/gif``NFS:&.!Choices``ADFS:%.IfThere``@.inthisdir``^.^.greatgrandparent` 當有文件擴展名的文件系統被掛載時，'.'改為'/'，如上面Japan/gif的示例。

Symbian｜文件管理器｜`\`｜`\`｜`''\user\docs\Letter.txt''`

Domain/OS｜Shell｜`//` (域的根) `/` (當前節點的根)｜`/`｜`.`｜`\`｜`~`｜`//node/home/user/docs/Letter.txt``./inthisdir``\\greatgrandparent``~rcinfo`

MenuetOS｜CMD｜`/`｜`/`

Stratus VOS｜VOS命令行解釋器｜`%''[系统名称]''#''[模块名称]''>`｜`&gt;`｜`&lt;`｜`%sysname#module1>SubDir>AnotherDir`

NonStop Kernel｜TACL Tandem高級命令語言｜無根｜`.`｜無父目錄｜`\NODE.$DISK.SUBVOL.FILE` `\NODE.$DEVICE` `\NODE.$DEVICE.#SUBDEV.QUALIFIER`

CP/M｜CCP｜`''[驱动器号:]''`｜無子目錄｜無子目錄｜無父目錄｜無子目錄｜`A:LETTER.TXT`

GS/OS｜`'':[卷名称]:''`或`''.[驱动器名称]:''`或`''[前缀]:''` 註：前綴可能為一個數字（0-31）、`*` (啟動卷)或`@` (AppleShare家目錄)｜`:`或`/`｜`@`｜`:Apps:Platinum.Paint:Platinum.Paint``*:System:Finder``.APPLEDISK3.5B/file`

日語和韓語版本的Windows可能經常顯示「¥」或「₩」字符代表目錄分隔符。此種情況是反斜槓的代碼被繪製為這些字符。非常早期的MS-DOS版本在顯示器上用這些字形替代了反斜槓，以便只能理解7位ASCII的程序顯示它們（其他字符如方括號也被替換，見ISO/IEC 646、 Windows Codepage 932 (Japanese Shift JIS) 和 Codepage 949 (Korean)）。儘管Windows的首個版本就支持8位ISO/IEC 8859-1字符集並且¥（Yen）字符位於U+00A5，以及現代版本Windows支持Unicode而₩（Won）字符位於U+20A9，許多軟體仍繼續以這種ASCII形式顯示反斜槓，以保持向後兼容性。

MacOS作為UNIX的派生，在內部採用UNIX路徑。

但是，為保持軟體兼容性和使用者的習慣，許多用戶圖形界面會在內部將使用者輸入的"/"符號替換為":"符號，並且在向使用者顯示檔案名稱時替換回"/"符號 (反之亦然，使用者輸入的":"符號將在內部被替換為"/"符號，但顯示時並不會反向替換回":"符號)

## 參考資料

本條目部分或全部內容出自以GFDL授權發佈的《自由線上電腦詞典》（FOLDOC）

## 外部連結

- Path Definition - The Linux Information Project (LINFO)
- Naming Files, Paths, and Namespaces - Microsoft Developer Network (MSDN)