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 l
sadece 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 lname
seç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
foo
bir dizin, kullanımıdır ln -di
: bir satır halinde,find . -follow -inum $(ls -di foo.txt |cut -d" " -f1)
symlinks
Bozuk 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