什么是“规范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