複数のシンボリックリンクを介して元のファイルを見つける方法は? [繰り返し]

複数のシンボリックリンクを介して元のファイルを見つける方法は? [繰り返し]

シンボリックリンクが別のシンボリックリンクを指す状況が発生したため、基本ファイルが保存されている場所を追跡および追跡するために複数のlsコマンドを実行する必要がありました。たとえば、centosで実行されているJavaプログラムの場所を知りたい場合は、通常/ bin / javaで始まり、実際のファイルの場所を見つけるには3〜4つのシンボリックリンクを介して行う必要があります。

実際のファイルが見つかるまで、すべてのシンボリックリンクをたどり、基本ファイルの場所を知らせる簡単なクリーンアップコマンドはありますか?

ベストアンサー1

を使用すると、realpathすべてのシンボリックリンクをファイルターゲットに拡張します。

たとえば、次のようになります。

> ls -al /usr/bin/java
lrwxrwxrwx 1 root root 22 Jul 13  2019 /usr/bin/java -> /etc/alternatives/java
> realpath /usr/bin/java
/usr/lib64/jvm/java-11-openjdk-11/bin/java

最終ファイルreadlinkとともに直接宛先のみを提供してください。readlink -f

> readlink /usr/bin/java
/etc/alternatives/java
> readlink -f /usr/bin/java
/usr/lib64/jvm/java-11-openjdk-11/bin/java

おすすめ記事