सभी फ़ाइलों को एक ही इनकोड संख्या के साथ सूचीबद्ध करें?


53

कहते हैं, जब मैं ls -liएक निर्देशिका के अंदर करता हूं, तो मुझे यह मिलता है:

12353538 -rw-r--r-- 6 me me 1650 2013-01-10 16:33 fun.txt

जैसा कि आउटपुट दिखाता है, फ़ाइल fun.txt में 6 हार्ड लिंक हैं; और इनकोड संख्या 12353538 है

मामले को देखते हुए, मुझे फ़ाइल के लिए सभी हार्ड लिंक कैसे मिलते हैं अर्थात एक ही इनोड नंबर वाली फाइलें?

जवाबों:


56
find /mount/point -samefile /mount/point/your/file

3
@ TheoneManis मैंने अभी देखा कि खोज कॉल के अन्य भाग आवश्यक नहीं हैं। findपर्याप्त रूप से उनका उपयोग करने के लिए काफी चतुर है। आमतौर पर आपको findएक खोज पथ देना होता है और यह बताना होता है कि ये फाइल सिस्टम (सिमिलिंक या माउंट पॉइंट के माध्यम से) नहीं छोड़ेगा। लेकिन जब हार्ड लिंक की तलाश होती है तो यह स्पष्ट होता है कि किस फाइल सिस्टम को सर्च करना है।
हौके लागिंग

6
Hauke, जो आपके द्वारा उपयोग किए जा रहे खोज के संस्करण पर निर्भर करता है। GNU संस्करण ऐसा कर सकता है, लेकिन BSD एक नहीं करता है, और यह मैक पर काम नहीं करेगा।
एलन शटको

3
आप -xdevअन्य फाइल सिस्टम में निर्देशिकाओं में उतरने से बचने के लिए जोड़ना चाह सकते हैं , अन्यथा आपको अन्य फाइल सिस्टम में स्थित इनकोड संख्या के साथ एक और फाइल मिल सकती है।
mmoya

-samefileएचपी-यूएक्स पर निकट-समतुल्य है -linkedto(हालांकि यह थोड़ा अलग है: एक खोज पथ को अभी भी निर्दिष्ट किया जाना चाहिए, उदाहरण के लिए)।
निक

3
ध्यान दें कि यदि आप अपने आरोह बिंदु के मूल में नहीं हैं, तो खोजें वर्तमान फ़ोल्डर के केवल सबफ़ोल्डर्स का पता लगाएंगी। तो आपको वास्तव में कुछ कहना चाहिएfind /mount/point -samefile /mount/point/your/file
कैलिमो

52

यदि आपके पास पहले से ही इनकोड संख्या है तो आप खोज के -inumविकल्प का उपयोग कर सकते हैं :

find -inum 12353538

11
फ़ाइल सिस्टम के मूल में सीडी को मत भूलना, या इसे खोजने के लिए एक पथ के रूप में निर्दिष्ट करें, जैसे find /mount/point -inum 12353538। अन्यथा खोज केवल वर्तमान फ़ोल्डर के नीचे दिखाई देगी।
कैलिमो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.