どのくらい"/a/./b/../../c/"
平等ですか/c
?
Stack Exchangeサイトの1つでこの質問を見ました。明らかに..
スタック(?)を爆破することを意味します。なぜですか?
答え1
ルートが次のようになるとしましょう。
/a/b
/c
これをコンポーネントに分けてみましょう。
/
-> ルート
/a
-> (a) から
.
-> このディレクトリパス
/a/./
-> まだ/a
/a/./b
-> から/a/b
..
-> 1 レベル「上へ」移動
/a/./b/..
-> /a/b/..
-> /a
/a/./b/../..
-> /a/..
-> /
/a/./b/../../c
->/c
答え2
* nix世界では、すべてのディレクトリは親ディレクトリのサブディレクトリです。各ディレクトリには、自分自身を参照する暗黙の「.」と、親ディレクトリを参照する暗黙の「..」があります。したがって、特定のディレクトリにありますディレクトリの変更(cd
)到着する」。 '("$"で始まるコマンドはコマンドラインから実行できます!)同じディレクトリに保持されます。
$ pwd
/tmp/a/b
$ cd .
$ pwd
/tmp/a/b
しかし、ディレクトリを「..」に変更すると、もう少し上がります。
$ cd ..
$ pwd
/tmp/a
ディレクトリを「..」に変更し、もう一度上に移動します。
$ cd ..
$ pwd
/tmp
このルールの唯一の例外はディレクトリです。ルートディレクトリ、親ディレクトリがありません。
$ cd ..
$ pwd
/
$ cd ..
$ pwd
/
確認するこのチュートリアルでは、Unixディレクトリを紹介します。詳細については。
答え3
/はルートディレクトリです。ディレクトリ構造は次のとおりです。
/
___ /c
___ /a
______/b (child dir of a)
___ /other dirs
今のポイントです。同じディレクトリを表し、二重点(..)は親ディレクトリを表します。
したがって、あなたの例では、パスに.を使用すると同じディレクトリに保持され、..を使用すると親ディレクトリに戻ります。したがって、最終的にジャンプしてルートディレクトリ(/)に到達するので、/ cと同じです。