web-dev-qa-db-ja.com

「標準パス」とは何ですか?

それは理論的な質問です。私は満足のいく幸運なしにインターネットを検索しましたが、この専門用語が何かを理解したいだけです。 Java、JSONなどの例を見てきましたが、GoogleでもStackOverflowでも簡単な説明は見つかりませんでした。コードは必要ありません= P

そのため、絶対パスは、特定のファイルまたはそのルートへの完全なルート、フルパスを記述する場所に到達する方法であり、OSに依存します(たとえば、WindowsとLinuxの絶対パスは異なります)。現在の場所から記述されているファイルまたは場所へのルート..(2つのドット)は、ディレクトリツリーの上位レベルを示します。これは、数年前から明らかでした。

検索時に、正規化されたファイルも見ました! CANONICALとは、「規則に従って」などのことを意味します。

誰かが標準的なものについての理論の熱学で私を啓発してください。 =)ありがとう!!

PD(つまり、Ubuntuの単なるランダム名ではなかった)XD

PD2残念ながら、全員に答えを出すことはできません。コンセプトを最もよく理解してくれた人に答えましたが、みんなに感謝します=)

66
Metafaniel

anythingを「標準」にすることの目的は、2つのことを比較できるようにすることです。たとえば、両方の../../here/bar/xおよび./test/../../bar/xは同じ場所を参照する場合がありますが、2つのパスでテキストによる比較を行うことはできません。ただし、それらを正規表現に変換すると、両方とも../bar/x、そして実際に同じものを参照していることがわかります。

要するに、多くの場合、1つのものを参照する多くの方法があり、その場合、正規表現を定義できる場合がありますこれはuniqueであり、そのようなもののコレクションのハンドルを取得できます。

(より多くの例を探しているなら、すべての数学はあらゆる種類のオブジェクトのための「標準的な」構造でいっぱいであり、同じ目的を念頭に置いています。これはおそらく Wikipediaの記事 追加の指示。)

82
Kerrek SB

正規パスを定義する良い方法は次のとおりです:the shortest absolute path(短い、文字列の長さの意味)。

これは、絶対パスと標準パスの違いの例です。

絶対パス:C:\abc\..\abc\file.txt
標準パス:C:\abc\file.txt

17
alfasin

正規パスとは(または絶対パスとの違い)はシステムに依存します。
通常、(フル)パスにエイリアス、ショートカット、またはシンボリックリンクが含まれる場合、正規のパスはこれらすべてを、参照する実際のディレクトリに解決します。
例:if /bin/aはシンボリックリンクです。絶対パスを要求する場所であればどこでも見つけることができます。 from Java.io.File#getAbsolutePath while実際のファイル(つまり、リンクの実際のターゲット)usr/local/bin/aは正規のパスとして返されます。 from Java.io.File#getCanonicalPath

6
Cratylus

正規パスに関するほとんどの問題は、ファイルではなくディレクトリの名前を渡すときに発生します。ファイルの場合、正規パスでもある絶対パスを提供している場合。ただし、dirの場合、最後の「/」を省略することを意味します。たとえば、「/ var/tmp/foo」は正規のパスですが、「/ var/tmp/foo /」はそうではありません。

2