パス名のドット

パス名のドット

実行中のアプリケーションでエラーが発生しました。

エラーは次のとおりです。

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

これはディレクトリにあり、2回/usr/local/bin入力した後にディレクトリ cd ..にあるのと同じです。/usr

これを直接確認できます。

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

答え2

Gabeの答えに加えて、これも良いです。

Unixコマンドreadlinkは常にファイルまたはディレクトリの実際のパスを返します。readlink -f /usr/local/bin/../../etc/は返します/usr/etc/

このコマンドはシンボリックリンクもチェックします。たとえば、私のシステムではreadlink -f /usr/bin/javareturnです/usr/lib/jvm/jdk-7.15-oracle-x64/jre/bin/java。どちらのユースケースもスクリプトに非常に便利です。

注:(..また、.現在存在するディレクトリも参照)いいえUNIXのみ。同じ操作は、少なくともすべてのdos / windows、mac、linux / unix / bsdベースのオペレーティングシステムにも適用されます。

関連情報