绝对/规范/相对路径之间有什么区别?
我猜绝对是从/开始的。它能包含/../吗?
规范路径与绝对路径的不同之处在于它不能包含/../?
foo是相对路径吗?
谷歌posix canonical path没有出现太多..。这些术语的POSIX参考资料是什么?
发布于 2017-10-16 13:40:54
POSIX 定义“绝对路径名”如下:
以单个或多个字符开头的路径名
和“相对路径名”如下:
不以字符开头的路径名。
这就是相对路径和绝对路径的全部。
在POSIX中没有定义规范路径,但术语通常指的是可比较的路径,也就是说,如果您对一个文件系统对象采取两条路径,并将它们转换为规范形式,则结果应该是相同的当且仅当两个文件系统对象是相同的。这包括删除“.”正如您提到的,但它也意味着解析符号链接;因此,可以将规范路径定义为
一个路径名,其组件都是真正的目录或文件,不包括“。和“.”,而且它的斜杠不被重复
在POSIX术语中,规范路径名实际上是一个解析路径名 (只要您接受规范路径名只能为存在的文件系统对象确定)。
请注意,这只是因为不允许硬链接目录.
因此,要回答你的问题:
/../;/../,也不能包含/./、// (可以说是在第一位置)或符号链接;foo是一条相对路径。(从脚踏实地来看,它们都是路径名,而不仅仅是路径。)
https://unix.stackexchange.com/questions/398412
复制相似问题