आप अपनी फ़ाइलों के आयतों 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
आपको फ़ोल्डर की एक सूची मिलती है