2011-05-31 13 views
79

Hallo सब से लिंक मिल जाए, मैं Linux में ऐसा करने की जरूरत है:प्रतीकात्मक कड़ी: सभी फाइलों कि इस फाइल

  • को देखते हुए: फ़ाइल नाम 'foo.txt'
  • खोजें: सभी फ़ाइलें प्रतीक हैं 'foo.txt' के लिंक

यह कैसे करें? धन्यवाद!

+0

संभवतः डुप्लिकेट [लिनक्स: किसी दिए गए 'मूल' फ़ाइल के सभी सिम्लिंक खोजें? (रिवर्स 'रीडलिंक')] (http://stackoverflow.com/questions/4532241/linux-find-all-symlinks-of-a-given-original-file-reverse-readlink) – Vality

उत्तर

95

यह निर्भर करता है, अगर आपको लगता है कि foo.txt, कहा जाता है एक विशिष्ट फ़ाइल के लिए लिंक खोजने की कोशिश कर रहे हैं तो यह केवल अच्छा तरीका है:,

find -L/-samefile path/to/foo.txt 

दूसरी ओर अगर आप सिर्फ रहे हैं लिंक किसी भी फ़ाइल कि foo.txt नामित किया जाना होता है, तो कुछ की तरह को खोजने की कोशिश कर

find/-lname foo.txt 

या

find . -lname \*foo.txt # ignore leading pathname components 
+0

समस्या खूबसूरती से हल हो गई। उत्तर देने वाले सभी लोगों के लिए धन्यवाद। – lukmac

+7

जैसा कि मैंने हटाए गए उत्तर पर टिप्पणी की है, आप '-xtype l' का उपयोग केवल सूची सिम्लिंक – Hasturkun

+0

ढूंढने के लिए कर सकते हैं, जिसे आप रीयूर्स करना चाहते हैं, क्योंकि किसी भी फाइल को foo को इंगित करना है।txt खुद को कुछ अन्य लिंक द्वारा इंगित किया जा सकता है ... पूर्व: ए-> बी-> foo.txt, /tmp/C->B->foo.txt, आदि –

17

फ़ाइल की आइनोड संख्या का पता लगाएं और फिर उसी आइनोड संख्या के साथ सभी फ़ाइलों के लिए खोज:

$ ls -i foo.txt 
41525360 foo.txt 

$ find . -follow -inum 41525360 

वैकल्पिक रूप से, find की lname विकल्प का प्रयास, लेकिन अगर आप रिश्तेदार सिमलिंक है इस काम नहीं करेगा जैसे a -> ../foo.txt

$ find . -lname /path/to/foo.txt 
+2

यदि जीएनयू के हाल के संस्करण का उपयोग करना है ढूंढें, आप '-samefile' विकल्प का उपयोग उसी प्रभाव के लिए '-L' के साथ भी कर सकते हैं, बिना इनोड को – Hasturkun

+5

देखें, लेकिन यह अन्य फ़ाइल सिस्टम पर भी फाइलें पाएगा जो समान इनोड नंबर होने पर होते हैं। – DigitalRoss

+0

यदि 'foo' निर्देशिका है, तो' ln -di' का उपयोग करें, एक पंक्ति में: 'ढूंढें। -follow -inum $ (ls -di foo.txt | cut -d "" -f1) ' – rubo77

0

मैं symlinks उपयोगिता, जब टूटा सिमलिंक के लिए खोज जो भी उपयोगी है उपयोग करने के लिए पसंद करते हैं। द्वारा स्थापित करें: वर्तमान फ़ोल्डर में

sudo apt install symlinks 

सभी दिखाएं सिमलिंक और सबफ़ोल्डर:

symlinks -rv . 
  • -r: पुनरावर्ती
  • -v: वर्बोज़
(सभी सिमलिंक न केवल टूट लोगों को दिखाने)

एक विशिष्ट सिम्लिंक खोजने के लिए, बस grep:

symlinks -rv . | grep foo.txt 
संबंधित मुद्दे