絶対/正規/相対パスの違いは何ですか?
絶対値は/
。含めることができますか/../
?
標準パスはを含めることができないという点で絶対パスと変わりませんか/../
?
foo
相対パスですか?
インターネット検索ではposix canonical path
多くの結果が出ていませんでした。この用語へのPOSIXリファレンスは何ですか?
ベストアンサー1
POSIX定義「絶対パス名」は次のとおりです。
1 つ以上の <slash> 文字で始まるパス名
「相対パス名」は次のとおりです。
<slash> 文字で始まらないパス名です。
これが相対パスと絶対パスのすべてです。
正規パスはPOSIXでは定義されていませんが、この用語は通常比較可能なパスを表します。つまりファイルシステムオブジェクトへの2つのパスを取得してそれを標準形式に変換する場合は、両方のファイルシステムオブジェクトが同じ場合にのみ結果が同じである必要があります。前述したように、これには「..」を削除することが含まれますが、シンボリックリンクを解決して正規パスを次のように定義することもできます。
「.」を除いて、すべてのコンポーネントが物理ディレクトリまたはファイルであるパス名。と「..」、スラッシュは繰り返されません。
POSIX 用語では、正規パス名は実際には次のようになります。パス名の解析(標準パス名は、既存のファイルシステムオブジェクトに対してのみ決定できることを認める限り)
これは、ハードリンクディレクトリが許可されていないために機能することに注意してください。
したがって、あなたの質問に答えるには:
- 絶対パスに
/../
;を含めることができます。 - 標準パスには、、、
/../
(最初の位置を除く)、またはシンボリックリンクを含めることはできません。/./
//
foo
相対パスです。
(県学的に言えばみんな道だ。名前、パスだけではありません。 )