路径名中的点

路径名中的点

我从正在运行的应用程序收到错误。

错误看起来像这样:

john@john-replacement:~/Desktop/yarbu-1.4.8/bin$ sudo yarbu-engine --VERBOSE
/usr/local/bin/yarbu-engine: line 996: cd: /usr/local/bin/../../etc/yarbu/conf/default: No such file or directory

中的点是什么意思/usr/local/bin/../../etc/

答案1

../是“父目录”的符号,因此,在您提出的情况下:

/usr/local/bin/../../etc/yarbu/conf/default

系统会将其解决为:

/usr/etc/yarbu/conf/default

这就像您在目录中/usr/local/bin然后键入cd ..两次一样,现在您将在/usr目录中。

您可以自己验证一下:

$ cd /usr/local/bin
$ pwd
/usr/local/bin
$ cd /usr/local/bin/../../../
$ pwd
/

答案2

除了加布的回答之外,这也很好:

unix 命令 readlink 将始终返回文件或目录的真实路径:readlink -f /usr/local/bin/../../etc/will return /usr/etc/.

该命令还解析符号链接。例如在我的系统上,readlink -f /usr/bin/java返回/usr/lib/jvm/jdk-7.15-oracle-x64/jre/bin/java.这两个用例对脚本都非常有帮助。

顺便说一句:(...指您所在的目录)是不是UNIX 特定的。同样的操作也适用于至少所有基于 dos/windows、mac、linux/unix/bsd 的操作系统。

相关内容