绝对/规范/相对路径

绝对/规范/相对路径

绝对/规范/相对路径有什么区别?

我猜绝对值以 开头/。可以包含吗/../

规范路径与绝对路径的不同之处在于它不能包含 吗/../

foo相对路径吗?

谷歌搜索posix canonical path并没有找到太多结果...这些术语的 POSIX 参考资料是什么?

答案1

POSIX定义“绝对路径名”如下:

以单个或两个以上 <slash> 字符开头的路径名

和“相对路径名”如下:

不以 <slash> 字符开头的路径名。

这就是相对路径和绝对路径的全部内容。

POSIX 中未定义规范路径,但该术语通常指可比较的路径,IE如果您采用文件系统对象的两个路径,并将它们转换为规范形式,当且仅当两个文件系统对象相同时,结果应该相同。正如您提到的,这涉及删除“..”,但这也意味着解决符号链接;所以规范路径可以定义为

一个路径名,其组成部分都是真实的目录或文件,不包括“.”。和“..”,其斜线不重复

在 POSIX 术语中,规范路径名实际上是解析路径名(只要您接受只能为存在的文件系统对象确定规范路径名)。

请注意,这只有效,因为不允许使用硬链接目录......

所以回答你的问题:

  • 绝对路径可以包含/../;
  • 规范路径不能包含/../,也不能包含/./, //(可以说位于第一个位置的除外)或符号链接;
  • foo是相对路径。

(迂腐地说,它们都是路径名字,不仅仅是路径。)

相关内容