パス '/../'はどういう意味ですか?


17

この「/../」のようなパスが ファイルの外側を指しているだろうか?私はそれが常にルートディレクトリを指定し、それが書き込まれたファイルの相対親ディレクトリを指定するようなものかもしれないと推測していますか?


1
ルートの親はルートなので、/と同じです
サミKuhmonen

1
だから、/ .. /と書くことは/ thenと同じことを意味しますか?
ユージンライ

1
はい、そうです。ルートの親に移動できないため、ルート自体に向けられます
サミクフモネン


/../パス内にある場合にのみ意味があります。
アマニキルマンガ

回答:


32

/../一枚ずつ分解しましょう

最初/はファイルシステムのルートを示しますこれはファイルシステムの最上位です

.. 親フォルダを意味しますしかし、私たちは最上位にいるので、それ以上高くすることはできないので、私たちはまだ最上位のフォルダにいます

/最後に追加すると、フォルダを示します。サブフォルダーのパスまたはファイルを指定しない限り、これは必須ではありません。そのため、ファイルシステムの一番上のフォルダにいます。

だから、/../タイピングと違いはありません/


24
あなたがchrootにいて、カーネルが十分にバグがある場合を除いて、そのようなトリックはchrootをエスケープさせます。(それは数年前にそうだったと思います。)
荒廃

8
場合によっては、末尾のスラッシュが重要になることがあります。たとえば/examplels -l /exampleがディレクトリへのシンボリックリンクである場合、シンボリックリンクls -l /example/が表示されますが、ディレクトリの内容は表示されます。
フリム

cd ../abc つまり、どこで../違いが生じるかと対照できます 。絶対パスではなく、相対パスでのみ役立つと思います。
-barlop

1
@barlop ../は、絶対パスに対して効果があります:/foo/bar/../quux= /foo/quux。いくつかのより便利な例:1)タブだけで本当に長いディレクトリ名が完成したのに気づいたが、それは望んでいたものではなかった。../50回バックスペースするよりも速いかもしれません。2)foo=/long/absolute/path/to/foo; bar=$foo/../bar;
8ビットツリー

1
@grawity 刑務所として..実装chrootする場合、エスケープパスを閉じることは、動物を入れるために納屋の扉を閉じるのと同じくらい明白です。そのようなケースを見逃すことはありません:最も明白なエスケープパス。それは、私が初期のchroot実装が要件として不可避性を持っていなかったかもしれないと疑うことにつながります
カズ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.