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

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

これにより、pwd現在のディレクトリに入るために使用しているすべてのシンボリックリンクを使用していることがわかります。私が持っている「実際の」ディレクトリ、つまりシンボリックリンクを使わずにルートから現在のディレクトリへのパスを教えてもらえますか?

答え1

POSIXのマニュアルページによると、pwdこの-Pオプションは役に立ちます。

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

だから

$ pwd -P

それはあなたに必要なものでなければなりません。

答え2

組み込みのpwdシェルは、使用時にシェルが追跡してcd保存するパスを使用します$PWD。これは、複雑な(深い)パスを指すシンボリックリンクがある場合は、実際のパスではなくそのディレクトリに変更するために入力した内容を伝えることを意味します。これはほとんどの場合、必要なものを提供するために行われます。

/bin/pwdgetcwdシステムコール(今はライブラリ呼び出し、読み込み)を使用して、/proc/self/cwdすべてのシンボリックリンクナビゲーションなしで現在のディレクトリへのフルパスを返します。

Steven Dが指摘したように、無視することを選択pwdできます。また、返される項目を選択することもできます。マニュアルページには基本的にどのようなオプションが使用されているかは記載されていませんが、経験上上記の説明が正しいことがわかります(シェル対シェル)。しかし、これに頼らずにただ使用すればよいのです。-P$PWD-L$PWDpwdpwd/bin/pwdpwd -P

関連情報