次のシンボリックリンクフォルダがある場合:
/home/user/foo/foo2 -> /home/user/bar/bar2
私は次のことを行います/home/user/foo/foo2
。
を実行すると、pwd
次のものが返されます/home/user/foo/foo2
。すごい!
しかし、もしそうなら、ls ../
それは内容を返すでしょう/home/user/bar
。
プログラムがシンボリックリンクフォルダにあることを知らせる方法はありますか?だからディレクトリに入るとバックリンクに従います。
ベストアンサー1
一般的にそうではありません。あなたはfoo2にいません。それは幻想です。あなたの殻は幻想を維持しているので、それを見ることができます。しかし、どの子プロセスもそれについて知りません。
$PWD環境変数を確認します。シェルがこれをファントムに設定し、子プロセスがそれを見ることができることを確認してください。ただし、これはユーザーが制御するコードでのみ機能します。 $ PWDを確認しました。他のアプリケーションは(実際には)cwd()を呼び出します。