路徑 (計算機科學)

路徑(英語: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 \\.\[物理設備]\
/\ . ..[1] 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
C:\user\docs\somefile.ext:alternate_stream_name
./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英語TOPS-20 DCL英語DIGITAL Command Language [驱动器名称:] . PS:<USER.DOCS>LETTER.TXT,4
RSX-11 MCR英語Monitor Console Routine [驱动器名称:] DR0:[30,12]LETTER.TXT;4
OpenVMS DCL英語DIGITAL Command Language [驱动器名称:][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英語Domain/OS Shell

// (域的根)
/ (當前節點的根)

/ . \ ~ //node/home/user/docs/Letter.txt
./inthisdir
\\greatgrandparent
~rcinfo
MenuetOS CMD / /
Stratus VOS英語Stratus VOS VOS命令行解釋器 %[系统名称]#[模块名称]> > < %sysname#module1>SubDir>AnotherDir
NonStop Kernel英語NonStop Kernel TACL Tandem高級命令語言 無根 . 無父目錄 \NODE.$DISK.SUBVOL.FILE

\NODE.$DEVICE

\NODE.$DEVICE.#SUBDEV.QUALIFIER

CP/M CCP [驱动器号:] 無子目錄 無子目錄 無父目錄 無子目錄 A:LETTER.TXT
GS/OS英語Apple GS/OS :[卷名称]:.[驱动器名称]:[前缀]:

註:前綴可能為一個數字(0-31)、* (啟動卷)或@ (AppleShare家目錄)

:/ @ :Apps:Platinum.Paint:Platinum.Paint
*:System:Finder
.APPLEDISK3.5B/file

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

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

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

參見

參考資料

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

  1. ^ Microsoft Technet Command Line Reference. Microsoft. [2017-11-09]. (原始內容存檔於2017-11-10). 
  2. ^ Sorting it all Out: When is a backslash not a backslash?. [2017-11-09]. (原始內容存檔於2016-03-23). 

外部連結