什么是“规范path”?

这是一个理论问题。 我在互联网上search没有满意的运气,我只是想了解这个术语是什么。 我见过的Java,JSON等的例子,但我找不到在谷歌或在这里在StackOverflow一个简单的解释,不需要代码= P

因此,绝对path是一种获取特定文件或位置的方式,描述完整path,完整path以及操作系统依赖性(例如,Windows和Linux的绝对path是不同的)。相对path是路由到从当前位置描述的文件或位置..(两个点),表示目录树中的上级。 我已经有好几年了。

search时,我甚至看到了标准化的文件呢! 我所知道的唯一的意思就是像“根据规则”之类的东西。

有谁可以请赐教在我的理论有关规范的东西? =)谢谢!

PD(所以它不仅仅是一个Ubuntu的随机名)XD

PD2可悲的是我不能给每个人答案,我把它给了帮助我最了解这个概念的那个,但是非常感谢大家=)

任何 “规范”的全部意义在于你可以比较两件事情。 例如, ../../here/bar/x / ./test/../../bar/x ../../here/bar/x / ./test/../../bar/x ../../here/bar/x./test/../../bar/x可能引用相同的位置,但不能在两个path上进行文本比较。 但是,如果将它们转换为规范表示forms,则它们都将成为../bar/x ,并且我们看到它们实际上是指相同的东西。

简而言之,通常情况下,你有很多方法来引用一件事情,在这种情况下,你可能能够定义一个唯一规范表示 ,并且允许你处理这些事情的集合。

(如果你正在寻找更多的例子,所有的math都充满了对各种对象的“规范”的构造,并且非常有着同样的目的,也许这篇维基百科文章可以提供一些额外的指导。

定义规范path的一个好方法是: the shortest absolute path (简称,在string长度的意义上)。

这是绝对path和规范path之间差异的一个例子:

绝对path: C:\abc\..\abc\file.txt
规范path: C:\abc\file.txt

一个规范的path是什么(或者它与绝对path的区别)是依赖于系统的。
通常情况下,如果(完整)path包含别名,快捷方式或符号链接,则规范path会将所有这些pathparsing为它们引用的实际目录。
例如:如果/bin/a是一个sym链接,你可以在你请求绝对path的任何地方find它,例如从java.io.File#getAbsolutePath,而真正的文件(即链接的实际目标),例如usr/local/bin/a将作为规范path返回,例如从java.io.File#getCanonicalPath