シンボリックリンクなしのpwd


54

そうした場合pwd、現在のディレクトリにアクセスするために使用したシンボリックリンクが使用されていることに気付きます。私が現在いる「本当の」ディレクトリを教えてもらうことはできますか?つまり、シンボリックリンクを使用せずにルートから現在のディレクトリへのパスですか?

回答:


70

のPOSIXマンページによるとpwd、この-Pオプションは役に立つかもしれません:

-P書き込まれる絶対パス名には、パス名のコンテキストでシンボリックリンクタイプのファイルを参照するファイル名を含めないでください。

副<文>この[前述の事実の]結果として、それ故に、従って、だから◆【同】consequently; therefore <文>このような方法で、このようにして、こんなふうに、上に述べたように◆【同】in this manner <文>そのような程度まで<文> AひいてはB◆【用法】A and thus B <文>例えば◆【同】for example; as an example

$ pwd -P

必要なものでなければなりません。


man pwdシェルに入力してこのコマンドのオプションを見つけると、この情報が簡単に見つかることを指摘したいと思います。
-Chud37

7

組み込みのpwdシェルは、シェルがユーザーを追跡するcd(および保存する$PWD)パスを使用します。つまり、複雑な(深い)パスへのシンボリックリンクがある場合、実際のパスではなく、そのディレクトリに変更するために入力した内容が通知されます。これは、ほとんどの場合に必要なものを提供するために行われます。

/bin/pwd使用していますgetcwd(これらの日は、読書ライブラリコールでシステムコール/proc/self/cwdカレントディレクトリのための正規のパスを返し、サンセリフすべてのシンボリックリンクトラバーサル)。

Steven Dが指摘したように、無視するオプションpwdがあり-Pます$PWD-Lのコンテンツを返すオプションもあります$PWD。のmanページにpwdは、デフォルトでどのオプションが使用されているかは記載されていませんが、経験から、上記の説明が正しいことがわかります(shell pwdvs. /bin/pwd)。ただし、おそらくこれに依存せず、単に使用する必要がありますpwd -P


2
説明する動作は、POSIXLY_CORRECTが設定されていない場合に/bin/pwdGNU であるLinuxシステムの動作ですpwd。がのPOSIXシステムでpwd/bin/bin/pwd$ PWDを使用し、シンボリックリンクを含むパスを返す場合があります。GNU pwdは、その環境でPOSIXLY_CORRECT変数を見つけると、そのPOSIXの方法で動作します。
ステファンシャゼル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.