これは単なる語彙の質問に過ぎませんが、私の頭の中で回り続けています。
これは、LPIC準備書の模擬試験に由来しています。本によると、正しい答え~/Documents
は、ホームディレクトリに相対的であるため、相対ディレクトリであるということです。
しかし、この本にはタイプミスや間違いの名誉ある割合が含まれているので、そこに書かれているすべてを当然のこととは思いません。ここでは~
、シェルによって変数のコンテンツ$HOME
または現在のユーザーのホームディレクトリパス(cf. man bash
)に展開される変数として機能するため、実際のパス/home/myuser/Documents
は実際には絶対ディレクトリであるため、同意しません。
Wikipediaでさえ、このトピックに関して私には何の助けにもならないようです(たとえこの本でこの本が間違っていることを確認しているように見えても)。
絶対パスまたは絶対パスは、現在の作業ディレクトリに関係なく、ファイルシステム内の同じ場所を指します。そのためには、ルートディレクトリが含まれている必要があります。
対照的に、相対パスは特定の作業ディレクトリから始まり、完全な絶対パスを提供する必要がありません。
ここでも、私は同意しません。この定義によれば/opt/kde3/bin/../lib
、現在の作業ディレクトリに依存しないパスは絶対パスでなければなりません。
Webster Dictionaryによると、簡単なWeb検索は私の欲求不満に追加されているだけです。
絶対パス -ルートディレクトリからの相対パス。最初の文字はパス名の区切り文字でなければなりません。
それでは$HOME/Documents
、$HOME
絶対ディレクトリとはみなされないでしょうか?または、この定義は変数の拡張を意味しますか?シェルの~
キャラクターはどうですか?どこかにある相対ディレクトリと絶対ディレクトリの信頼できる定義はありますか?
~/foo
相対パスを呼び出すことにまったく同意しません。あなたが得ているのは、ハードコーディングとパラメータ化の違いです。詳細については私の答えをご覧ください。
~/Documents
やなどの文字列$HOME/Documents
はパスではないことを意味します。拡張後に(絶対)パスを識別しますが、パス自体ではありません。これはUnix / Linuxユーザーがこの用語を使用している数と一致すると思いますが、これらの文字列はパス自体と呼ばれることは間違いありません。
/
絶対パスと呼ばれます。したがってから始まるものをすべて/
、私は(これがある場合でも、絶対呼ぶだろう/usr/../etc
)と他のすべては、私は相対的な呼び出します(~/Doc
、Doc
、../john/Doc
、$HOME/...
、...)。ポイントは、現在の作業ディレクトリまたは現在のユーザーに関係なく、absoluteが動作する必要があるということです。相対は特定の狭いケースでのみ機能します。