シンボリックリンクの複雑なネストをたどり、パスの途中にあるものも含め、途中のすべてのシンボリックリンクを完全にキャプチャしてレポートするための最良のツール/プログラミングテクニックは何ですか (詳細については以下を参照してください)。
これが具体的な例です。シェルコマンドからの次の出力を検討してください
ls -l /Library/Java/Home
lrwxr-xr-x 1 root admin 48 Feb 24 12:58 /Library/Java/Home -> /System/Library/Frameworks/JavaVM.framework/Home
ls コマンドを使用すると、ファイル /Library/Java/Home ファイルが別の場所へのシンボリック リンクであることを確認できます。ただし、指しているものがシンボリックリンクであることは通知されません
ls -l /System/Library/Frameworks/JavaVM.framework/Home
lrwxr-xr-x 1 root wheel 24 Feb 24 12:58 /System/Library/Frameworks/JavaVM.framework/Home -> Versions/CurrentJDK/Home
これにより、指定されたファイルのパスの一部がシンボリック リンクであることを認識できなくなります。
ls -l /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK
lrwxr-xr-x 1 root wheel 3 Feb 24 12:58 /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK -> 1.5
この物語を完成させるために、これは別のシンボリックリンクです
ls -l /System/Library/Frameworks/JavaVM.framework/Versions/1.5
lrwxr-xr-x 1 root wheel 5 Feb 24 12:58 /System/Library/Frameworks/JavaVM.framework/Versions/1.5 -> 1.5.0
最後に、「実際の」フォルダーを指します。
リンクの完全なチェーンを何らかの方法で視覚化できるツールはありますか (グラフィカルまたはプレーンな古いテキストのいずれか)? 自分でこれをスクリプト化できると確信しています (そして、あなたが望むなら、それを実行して共有してください!) が、「ああ、くだらない、エッジケース。ああ、くそ、別の」でいっぱいになるようなもののようです。エッジケース」。誰かがすでに面倒を見てくれていることを願っています。
私はフリーランス/契約の仕事をしています.誰もがシンボリックリンクをわずかに異なる方法で使用して、PHPアプリケーションをWebサーバーにインストールします. 私の仕事の半分は通常、この (必然的に) 文書化されていない階層をネスト解除して、新しいコード/モジュールを配置する場所を知ることです。