路径 (计算机科学)

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

外部链接