मुझे उन फ़ाइलों को खोजने के लिए दो फ़ोल्डरों की तुलना करने की आवश्यकता है जो या तो हैं:
- विभिन्न आकार और / या संशोधित तिथि / समय
- एक से गायब है
मैं diff
अपनी स्थिति में दो फ़ोल्डरों के खिलाफ नहीं चल सकता । मेरी योजना find
दोनों फ़ोल्डरों पर उपयोग करने और आउटपुट को दो पाठ फ़ाइलों में सहेजने और फिर दो पाठ फ़ाइलों का उपयोग करने की तुलना करने की थी diff
।
मुझे लगता है कि यह काम करेगा लेकिन यह सुनिश्चित करने की आवश्यकता है क्योंकि मेरे स्रोत / लक्ष्य निर्देशिकाएं बहुत बड़ी हैं और अगर मेरे परीक्षण में कोई अंतर नहीं दिखता है, या यह सभी अंतरों को नहीं ढूंढता है, तो मुझे यह जानने का कोई तरीका नहीं है कि यह काम किया है या नहीं।
अगर दो फ़ोल्डर बिल्कुल समान हैं तो मुझे लगता है कि यह काम करेगा। लेकिन मैं सवाल करता हूं कि अगर एक फ़ोल्डर में बहुत अधिक जटिल उप-निर्देशिका / फाइलें होती हैं तो क्या होगा। diff
एक फ़ोल्डर संरचना मुद्रण उत्पादन को समझने में सक्षम हो जाएगा ?
उदाहरण के लिए, मैं एक दिन फ़ोल्डर की एक सूची लूंगा।
$ find /path/to/folder -exec ls -ld {} \; > inventory-20181101.txt
...
मैं जोड़ने, हटाने, फ़ाइलों को संपादित करने और फ़ोल्डरों और उप-फ़ोल्डरों को जोड़ने या हटाने सहित चीजों का एक गुच्छा संशोधित करूंगा। फिर दूसरे दिन मैं एक और इन्वेंट्री लूंगा।
$ find /path/to/folder -exec ls -ld {} \; > inventory-20181102.txt
...
फिर मैं दोनों फाइलों को अलग कर दूंगा।
$ diff inventory-20181101.txt inventory-20181102.txt
मुझे लगता है कि यह काम करेगा अगर कोई बदलाव नहीं थे या बदलाव मामूली थे, जैसे कि फाइलों को संशोधित करना। लेकिन क्या होता है अगर मैं 5 स्तर के नेस्टेड फ़ोल्डर और फिर इसमें 100 फाइलें जोड़ देता हूं, और एक अन्य शीर्ष-स्तरीय फ़ोल्डर को हटा देता हूं। क्या diff
सही फ़ोल्डरों का मिलान कर पाएंगे?
diff
यह कैसे काम करता है और क्या यह पाठ फ़ाइल में सहेजे गए फ़ोल्डर संरचनाओं में अंतर को समझने में सक्षम होगा। मैं अपने प्रश्न में अधिक विस्तार रखूंगा। धन्यवाद!
find
किसी विशेष क्रम में निर्देशिका में फ़ाइलों को सूचीबद्ध करने की गारंटी नहीं है। यदि आप इसे तत्काल उत्तराधिकार में दो बार चलाते हैं, तो यह संभवत: एक ही परिणाम देगा, लेकिन, महीनों के बाद डायरेक्टरी ट्री में घूमने के बाद चीजें बदलने की संभावना है। किसी भी तरह से संशोधित नहीं की गई फाइलें समान सापेक्ष क्रम में हो सकती हैं, लेकिन मुझे संदेह है कि इसकी भी गारंटी है। (2) diff
बड़े बदलावों के बाद "resync" में विफल होने के लिए कुख्यात है, इसलिए यह कुछ अपरिवर्तित लाइनों को हटाए और डाले जाने के रूप में रिपोर्ट कर सकता है। यह शायद किसी भी बदलाव को याद नहीं करेगा ।
find
और diff
मेरे लिए विश्वसनीय नहीं होगा।