आप अपनी फ़ाइलों के आयतों ls -i -1(-1 / "एक" आउटपुट के लिए प्रति फ़ाइल एक पंक्ति लिखते हैं) दिखा सकते हैं।
प्रत्येक दो फ़ोल्डरों के लिए आउटपुट सहेजें।
यदि "मूल" और हार्डलिंक फ़ाइल का फ़ाइल नाम अलग है, cut -f1तो फ़ाइल नाम को फ़िल्टर करने के लिए उपयोग करें और केवल इनोड संख्या को बनाए रखें।
इनकोड संख्या का उपयोग करके फ़ाइलों को सॉर्ट करें sort। अब आप diffअंतर देखने के लिए उपयोग कर सकते हैं ।
केवल पहले फोल्डर में होने वाली => इनोड्स से grep "^<" diffOutput.listशुरू <होने वाली लाइनों के लिए फिल्टर का उपयोग करें । यदि आप इनोड संख्या की आवश्यकता है, तो आउटपुट से पहले वर्ण ( या ) को हटाने के grep "^>"लिए फोल्डर बी का उपयोग करें ।cut -c2-<>
यदि आपने पहले फाइल में से फाइलनेम हटा दिए हैं, तो आपको दिए गए इनकोड नंबर के लिए फाइलनेम को खोजना होगा।
ls -l -1एक फ़ाइल में प्रत्येक फ़ोल्डर के लिए (फ़ाइल नाम के साथ) का आउटपुट सहेजें । अब आप grepबैश लूप में दिए गए इनकोड नंबरों के लिए फाइलनाम प्राप्त करने के लिए उपयोग कर सकते हैं :
आज्ञा देना InodesFilenamesA.listफ़ाइल जिसमें इनकोड संख्या और फ़ाइल नाम Folder A हो
12345 file1inBothFolders
99999 file2OnlyInFolderA
88888 file3OnlyInFolderA
...
आज्ञा inodesA.listदेना एक फ़ाइल जिसमें केवल फोल्डर ए में होने वाले इनोड्स हों
99999
88888
....
अब लूप ओवर inodesA.list।
cat inodesA.list | while read line; do
grep "$line" InodesFilenamesA.list
done
आपको फ़ोल्डर की एक सूची मिलती है