Yanıtlar:
Duruma göre, çağrılan belirli bir dosyaya bağlantılar bulmaya çalışıyorsanız, o foo.txt,zaman bu tek iyi yoldur:
find -L / -samefile path/to/foo.txt
Öte yandan, adı verilen herhangi bir dosyanın bağlantılarını bulmaya çalışıyorsanız foo.txt,
find / -lname foo.txt
veya
find . -lname \*foo.txt # ignore leading pathname components
-xtype lsadece liste sembolik bağlantılarını bulmak için kullanabilirsiniz
find . -lname '*foo.dir*'(örn. eşleşir file.txt -> ../foo.dir/file.txt)
Dosyanın inode numarasını bulun ve ardından aynı inode numarasına sahip tüm dosyaları arayın:
$ ls -i foo.txt
41525360 foo.txt
$ find . -follow -inum 41525360
Alternatif olarak lnameseçeneğini deneyin find, ancak göreceli sembolik bağlarınız varsa bu işe yaramayacaktır, örn.a -> ../foo.txt
$ find . -lname /path/to/foo.txt
-samefile-L
foobir dizin, kullanımıdır ln -di: bir satır halinde,find . -follow -inum $(ls -di foo.txt |cut -d" " -f1)
symlinksBozuk sembolik bağları ararken de kullanışlı olan yardımcı programı kullanmayı tercih ediyorum . Yükleyen:
sudo apt install symlinks
Geçerli klasör ve alt klasörlerdeki tüm sembolik bağları göster:
symlinks -rv .
-r: özyinelemeli-v: ayrıntılı (yalnızca bozuk olanları değil, tüm sembolik bağları göster)Belirli bir sembolik bağlantıyı bulmak için sadece grep:
symlinks -rv . | grep foo.txt