O GNU find
tem o teste -samefile
. De acordo com a página man:
-samefile name File refers to the same inode as name. When -L is in effect, this can include symbolic links.
$ find -L / -samefile /path/to/file
Isso localizará todos os links para /path/to/file
, que inclui links físicos e o próprio arquivo. Se você quiser apenas links simbólicos, poderá testar individualmente os resultados de find
( test -L
).
Você deve ler quais são os efeitos de -L
e garantir que ele não cause problemas na sua pesquisa.
Nota: Enquanto a documentação diz que procura por arquivos com o mesmo número de inode, parece funcionar nos sistemas de arquivos.
por exemplo. / home e / tmp são sistemas de arquivos separados
$ touch ~/testfile
$ ln -s ~/testfile /tmp/foo
$ ln -s /tmp/foo /tmp/bar
$ mkdir /tmp/x
$ ln -s ~/testfile /tmp/x/baz
$ find -L /tmp -samefile ~/testfile
/tmp/bar
/tmp/foo
/tmp/x/baz
Note como isso está retornando / tmp / bar, que é um link simbólico para / tmp / foo, que é um symlink para ~ / testfile. Se você quiser apenas encontrar links simbólicos diretos para o seu arquivo de destino, isso não funcionará.