मेरे पास हजारों फ़ाइलों वाली दो निर्देशिकाएं हैं जिनमें कमोबेश एक जैसी फाइलें हैं।
मैं dirA से dirB में उन सभी फ़ाइलों को कैसे कॉपी कर सकता हूं जो dirB में नहीं हैं या यदि dirB में फ़ाइल मौजूद है तो इसे छोटा होने पर अधिलेखित कर दें।
मुझे पता है कि विभिन्न टाइमस्टैम्प या अलग-अलग फ़ाइल आकार के लिए बहुत सारे उदाहरण हैं, लेकिन मैं केवल यह लिखना चाहता हूं कि गंतव्य फ़ाइल छोटी है और किसी भी परिस्थिति में बड़ी नहीं है।
मेरी समस्या की पृष्ठभूमि:
मैंने अपने Minecraft सर्वर पर एक dynmap प्रदान किया है, लेकिन कुछ टाइल गायब हैं या दूषित हैं। फिर मैंने एक और मशीन पर फिर से तेजी से सीपीयू के साथ प्रतिपादन किया और अपने सर्वर पर सभी नई प्रदान की गई फ़ाइलों (~ 50GB / 6.000.000 ~ 4-10 KB PNGs) की नकल की। उसके बाद मैंने देखा कि मेरे नए रेंडर में भी दूषित फाइलें हैं।
बाएं: पुराना रेंडर, राइट: नया रेंडर
इसके बावजूद मैं सभी फाइलों को अधिलेखित नहीं करना चाहता हूं, लेकिन केवल वे ही हैं जो बड़े हैं (भ्रष्ट कम डेटा ले जाते हैं और छोटे होते हैं)।
stat
फ़ाइलों का आकार प्राप्त करने के लिए दोनों स्थानों पर फ़ाइलों का उपयोग करें और फिर कॉपी करें यदि यह आपकी शर्तों को पूरा करता है
rsync
विकल्प की जरूरत है, लेकिन सही एक खोजने के लिए असफल है, तो एक आसान तरीका के साथ चला गया
cp
संयोजन के साथ उपयोग करेंcmp
या बेहतर उपयोग करेंrsync
जिसमें आपके पास सभी विकल्प हैं