这是一个理论问题。我在互联网上搜索没有令人满意的运气,我只想了解这个术语是什么。我已经看过Java,JSON等的例子,但我在谷歌或StackOverflow中找不到一个简单的解释,没有代码需要= P
因此,绝对路径是一种到达某个文件或位置的方式,描述了它的完整路径,完整路径,以及它依赖于操作系统(例如,Windows和Linux的绝对路径不同) path它是指向文件或位置的路径,它从当前位置描述..(两个点)表示目录树中的高级别。我已经清楚这几年了。
搜索时我甚至看到过有规范化的文件! 所有我知道它的经典意味着“根据规则”或其他东西。
有人可以请理解关于规范的理论吗? =)谢谢!!
PD(所以它毕竟不仅仅是一个Ubuntu随机名称)XD
PD2可悲的是我不能给每个人一个答案,我把它给了那个帮助我最了解这个概念的那个,但是非常感谢每个人=)
答案 0 :(得分:78)
制作任何“规范”的重点是你可以比较两件事。例如,../../here/bar/x
和./test/../../bar/x
都可以引用相同的位置,但您无法对这两个路径进行文本比较。但是,如果将它们转换为规范表示形式,它们都会变为../bar/x
,并且我们看到它们实际上指的是相同的东西。
简而言之,通常情况下,您有很多方法可以引用一件事,在这种情况下,您可以定义一个规范表示 unique ,它允许你处理这类事物的集合。
(如果你正在寻找更多的例子,所有的数学都充满了各种对象的“规范”结构,并且考虑到了同样的目的。也许这个Wikipedia article可以提供一些额外的的方向。)
答案 1 :(得分:15)
定义规范路径的好方法是:the shortest absolute path
(简称,字符串长度的含义)。
这是绝对路径和规范路径之间差异的一个示例:
绝对路径:C:\abc\..\abc\file.txt
规范路径:C:\abc\file.txt
答案 2 :(得分:6)
规范路径是什么(或它与绝对路径的差异)取决于系统
通常,如果(完整)路径包含别名,快捷方式或符号链接,则规范路径会将所有这些路径解析为它们引用的实际目录。
示例:如果/bin/a
是sym链接,您可以在请求绝对路径的任何位置找到它,例如来自java.io.File#getAbsolutePath,而真实文件(即链接的实际目标),即usr/local/bin/a
将作为规范路径返回,例如来自java.io.File#getCanonicalPath
答案 3 :(得分:2)
当您传递目录的名称而不是文件时,会发生规范路径的大多数问题。对于文件,如果我们提供的绝对路径也是规范路径。但对于dir而言,这意味着省略了最后的" /"。例如," / var / tmp / foo" " / var / tmp / foo /"是一个规范的路径。不是。