路徑 (電腦科學)

路徑(英語: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). 

外部連結