~/ パスを参照するための受け入れられた名前はありますか?

~/ パスを参照するための受け入れられた名前はありますか?

ホームディレクトリの ~/ パスを参照するための受け入れられた名前はありますか?

答えを探しているときに、さまざまな用語を使用している投稿を見つけました。

  • ~/ 構文
  • ~/ パス
  • ~/ 拡張パス
  • ~/ 表記

しかし、~/ 構文パスに使用でき、完全な絶対パスや相対パスと区別するために使用できる、一貫して使用される便利な用語は見つかりませんでした。

シェルが ~/ パスを展開するため、~/ パスは絶対パスであることを認識していることに注意してください。これは、私が求めている便利な参照方法です。

答え1

~/は、いくつかの魔法の1つにすぎません。チルダ拡張"。チルダ展開は、特に UNIX シェルに関連しています。$HOMEチルダ展開とは異なり、普遍的に理解されているわけではなく、シェルごとに異なる場合があります。唯一の共通点は、POSIX 標準に準拠していることです (ほとんどの場合)。Wikipedia によると、POSIX シェル標準は、Bourne シェルの派生である Korn シェルの「厳密なサブセット」に基づいています。Bourne シェルの子孫には、bash や zsh などがあります。POSIXではチルダ展開について次のように規定されています:

「チルダ プレフィックス」は、単語の先頭の引用符で囲まれていない文字と、それに続く単語内の最初の引用符で囲まれていない文字の前の文字すべて、または がない場合は単語内のすべての文字で構成されます。代入 (XBD 変数代入を参照) では、複数のチルダ プレフィックスを使用できます。つまり、単語の先頭 (つまり、代入の の後ろ)、引用符で囲まれていない の後ろ、またはその両方で使用できます。代入内のチルダ プレフィックスは、最初の引用符で囲まれていない または で終了します。チルダ プレフィックス内のどの文字も引用符で囲まれていない場合、 の後ろのチルダ プレフィックス内の文字は、ユーザー データベースからのログイン名の候補として扱われます。ポータブル ログイン名には、XBD その他の環境変数の LOGNAME 環境変数の説明で示されているセット以外の文字を含めることはできません。ログイン名が null の場合 (つまり、チルダ プレフィックスにチルダのみが含まれている場合)、チルダ プレフィックスは変数 HOME の値に置き換えられます。HOME が設定されていない場合、結果は不定です。それ以外の場合、チルダプレフィックスは、POSIX.1-2008 のシステムインターフェイスボリュームで定義されている getpwnam() 関数を使用して取得されたログイン名に関連付けられた初期作業ディレクトリのパス名に置き換えられます。システムがログイン名を認識しない場合、結果は未定義になります。

チルダ展開の結果得られるパス名は、フィールド分割やパス名展開によって変更されるのを防ぐために、引用符で囲まれているものとして扱われます。

基本的にそれは~$HOMEと~foo/リンクを与えることを意味します初期作業ディレクトリユーザー foo の。大まかに言えば、foo のホーム ディレクトリを意味しますが、必ずしもそうとは限りません。(唯一の例外は root です)

BaSHではチルダ展開の標準に従っていない。いくつかの方法特に重要なものはありません。BaSHには他にも楽しいチルダ展開があります。リンクコメント投稿者 @phk 提供。全部集めてもいいですね!


しかし、話がそれてしまいました。~/ が何と呼ばれているかについて話している場合、パス自体 (フォーム~/x/y/z) の用語を指しているのでしょうか、それとも、そのパスを作成するために を使用して という現象~/(つまり、アートワークとアート、派生と微分化) を指しているのでしょうか。~/ pathsと は~/ expanded paths前者を指し、~/ syntaxと は~/ notation後者を指しているように見えるからです。おそらく私は複雑にしすぎているのでしょうが、言語とは移ろいやすいものです。たとえば、 は~/ pathsで始まるパスのフォームを強調します~/が、 はそのフォームのパスを作成するために が実行している~/ extended paths関数を強調します~/

とにかく、もうお気づきかと思いますが

認められた名前はありません

なぜなら、これらの用語はすべて流通しており、この問題は当局から公式に取り上げられていないからです。言い換えれば、これらの用語はすべて同じものを説明する方法であり、競合するラベルではありません。正式な名前はありませんが、bashを少しでも知っている人なら、すぐに意味がわかります。そして、あなたが話していることを理解している人がいれば、あなたがそれを何と呼ぶか​​は誰が気にするでしょうか?どの用語が好きかは自分で決めてください。個人的には~/ paths、 (発音は )が好きです。「チルダ・スラッシュパス」そして、現象について言及する「チルダ・スラッシュパスの省略形」正直に言うと、名前すら必要ないと思うのですが…

関連情報