これにより、pwd
現在のディレクトリに入るために使用しているすべてのシンボリックリンクを使用していることがわかります。私が持っている「実際の」ディレクトリ、つまりシンボリックリンクを使わずにルートから現在のディレクトリへのパスを教えてもらえますか?
答え1
POSIXのマニュアルページによると、pwd
この-P
オプションは役に立ちます。
-P 作成された絶対パス名には、パス名コンテキストでシンボリックリンクタイプファイルを参照するファイル名を含めないでください。
だから
$ pwd -P
それはあなたに必要なものでなければなりません。
答え2
組み込みのpwdシェルは、使用時にシェルが追跡してcd
保存するパスを使用します$PWD
。これは、複雑な(深い)パスを指すシンボリックリンクがある場合は、実際のパスではなくそのディレクトリに変更するために入力した内容を伝えることを意味します。これはほとんどの場合、必要なものを提供するために行われます。
/bin/pwd
getcwd
システムコール(今はライブラリ呼び出し、読み込み)を使用して、/proc/self/cwd
すべてのシンボリックリンクナビゲーションなしで現在のディレクトリへのフルパスを返します。
Steven Dが指摘したように、無視することを選択pwd
できます。また、返される項目を選択することもできます。マニュアルページには基本的にどのようなオプションが使用されているかは記載されていませんが、経験上上記の説明が正しいことがわかります(シェル対シェル)。しかし、これに頼らずにただ使用すればよいのです。-P
$PWD
-L
$PWD
pwd
pwd
/bin/pwd
pwd -P