同じ宛先を指すシンボリックリンクを探す

同じ宛先を指すシンボリックリンクを探す

同じ宛先を指すディレクトリ内のすべてのシンボリックリンクを見つける方法は?

たとえば、次はディレクトリのファイルのリストです。

a.txt
b.txt
a -> target1
c -> target1
m -> target2
n -> target3
c.txt
z -> target1

にリンクされたコンテンツのリストを取得したいですtarget1。したがって、予想される出力は次のようになります。

a
c
z

ベストアンサー1

次のディレクトリ構造を考えてみましょう。

lrwxrwxrwx [...] a -> target1
lrwxrwxrwx [...] c -> target1
lrwxrwxrwx [...] m -> target2
lrwxrwxrwx [...] n -> target3
lrwxrwxrwx [...] t -> z
-rw-r--r-- [...] target1
-rw-r--r-- [...] target2
-rw-r--r-- [...] target3
lrwxrwxrwx [...] z -> target1

find同じinodeを指すすべてのファイルを見つけるには、GNUを使用してください。

find -L . -samefile target1
  • -L再帰的なシンボリックリンクがあっても、シンボリックリンクに従います。
  • -samefile与えられたパラメータと同じinodeを指すすべてのファイルを探すtarget1

上記のディレクトリの出力は次のとおりです。

./z
./a
./target1
./c
./t

おすすめ記事