在计算机与文件系统语境中,canonical path(规范/标准路径)指把一个路径“归一化”后的唯一、明确表示形式:通常会解析并消除 .(当前目录)、..(上级目录)、多余的分隔符,并尽可能解析符号链接(取决于系统/语言实现),从而得到指向同一位置的标准路径表示。该术语在编程(如 Java、POSIX/Unix)里很常见。
/kəˈnɒnɪkəl pɑːθ/
The program converts the input into a canonical path.
程序会把输入转换成规范路径。
To avoid security issues, the server validates that the requested file’s canonical path stays inside the allowed directory.
为避免安全问题,服务器会验证所请求文件的规范路径是否始终位于允许的目录之内。
canonical 来自希腊语 kanon(“准则、规范、尺度”),经拉丁语与法语进入英语,含义是“被认可为标准的、规范的”。path 源自古英语 pæþ(“小路、道路”)。合在一起,canonical path 字面即“规范的路径”,引申为“经过标准化处理后可唯一指认位置的路径”。
realpath() 等概念时常涉及“规范路径”的思想。 java.io.File#getCanonicalPath):API 文档中直接出现并定义 canonical path。