जवाबों:
यह निर्भर करता है, यदि आप किसी विशिष्ट फ़ाइल के लिंक खोजने की कोशिश कर रहे हैं जिसे कॉल किया जाता है foo.txt,
तो यह एकमात्र अच्छा तरीका है:
find -L / -samefile path/to/foo.txt
दूसरी ओर, यदि आप किसी भी फ़ाइल का लिंक ढूंढने का प्रयास कर रहे हैं foo.txt
, जिसका नाम होना है , तो कुछ ऐसा है
find / -lname foo.txt
या
find . -lname \*foo.txt # ignore leading pathname components
-xtype l
केवल सूची
find . -lname '*foo.dir*'
(उदाहरण के लिए file.txt -> ../foo.dir/file.txt
)
फ़ाइल का इनकोड नंबर ढूंढें और फिर उसी इनोड नंबर वाली सभी फ़ाइलों को खोजें:
$ ls -i foo.txt
41525360 foo.txt
$ find . -follow -inum 41525360
वैकल्पिक रूप से, के lname
विकल्प का प्रयास करें find
, लेकिन यह काम नहीं करेगा यदि आपके पास रिश्तेदार सहानुभूति उदाa -> ../foo.txt
$ find . -lname /path/to/foo.txt
-samefile
साथ विकल्प का उपयोग भी कर सकते हैं -L
, बिना
foo
एक निर्देशिका है, का उपयोग करें ln -di
, एक पंक्ति में:find . -follow -inum $(ls -di foo.txt |cut -d" " -f1)
मैं symlinks
उपयोगिता का उपयोग करना पसंद करता हूं , जो कि टूटी हुई सीलिंक्स की खोज करते समय भी काम आता है। द्वारा स्थापित करें:
sudo apt install symlinks
वर्तमान फ़ोल्डर और सबफ़ोल्डर्स में सभी सिम्लिंक दिखाएं:
symlinks -rv .
-r
: पुनरावर्ती-v
: क्रिया (सभी सिम्बलिंक दिखाएं, केवल टूटे हुए नहीं)एक विशिष्ट सिमलिंक खोजने के लिए, बस grep
:
symlinks -rv . | grep foo.txt