プログラムがシンボリックリンクフォルダにあることをどのようにプログラムに通知できますか?

プログラムがシンボリックリンクフォルダにあることをどのようにプログラムに通知できますか?

次のシンボリックリンクフォルダがある場合:

/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()を呼び出します。

おすすめ記事