シンボリックリンク解決(pwd)

シンボリックリンク解決(pwd)

私が次のことをしているとしましょう。

cd /some/path
ln -s /target/path symbolic_name

そうする場合:

cd /some/path
cd symbolic_name
pwd

私は得る:

/some/path/symblic_name

いいえ:

/target/path

私が自分でやったように、シェルがシンボリックリンク(CWDアップデートなど)を「完全に解決する」ようにする方法はありますか?

cd /target/path

私は私が目標パスにどのように到達したかを「知っている」か「敏感に」見えるいくつかのプログラムを実行する必要がありますcd /target/path

ベストアンサー1

pwdあなたのシェルには「スマート」になりたい機能が組み込まれています。シンボリックリンクを操作した後、出力は実際のディレクトリに移動したかのようにcd内部的に偽です。pwd

オプション-Pをに渡しますpwd(例:run)pwd -P。この-Pオプション(「物理的」)は、pwdシンボリックリンク追跡を実行せずにディレクトリへの「実際の」パスを表示するように指示します。

pwdまたは、この魔法を実行しない(または実行できない)実際のバイナリも必要です。バイナリを明示的に使用してください。

$ type -a pwd
pwd is a shell builtin
pwd is /bin/pwd
$ mkdir a
$ ln -s a b
$ cd b
$ pwd
/home/michas/b
$ /bin/pwd
/home/michas/a

おすすめ記事