我从正在运行的应用程序收到错误。
错误看起来像这样:
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 的操作系统。