मैं अलग-अलग निर्देशिका पेड़ों पर डुप्लिकेट फ़ाइलों को कैसे हटा सकता हूं?


10

मेरे पास दो निर्देशिकाएं हैं: old/और new/। फ़ाइलों में से कुछ old/उन में डुप्लिकेट हैं new/। कुछ में केवल एक ही नाम होता है, और कुछ में समान सामग्री लेकिन अलग-अलग नाम भी हो सकते हैं। मुझे फ़ाइलों के लिए उपनिर्देशिका पथ में कोई दिलचस्पी नहीं है, इसलिए मिलान में केवल एक अयोग्य फाइलनाम पर विचार करने की आवश्यकता है।

मैं डुप्लिकेट फ़ाइलों को निकालना चाहता हूं old/, ताकि इसमें केवल वे फ़ाइलें शामिल हों जो अंदर नहीं मिली हैं new/। ऐसे मामलों के लिए जहां फ़ाइलनाम मेल खाते हैं, लेकिन सामग्री या इसके विपरीत नहीं, मैं चाहता हूं कि यह कुछ लॉग में सूचीबद्ध हो।

क्या किसी को भी इसी तरह की समस्या का सामना करना पड़ा है, या खरोंच से एक (पर्ल या समान) स्क्रिप्ट को एक साथ हैक करने से बेहतर समाधान है? md5sumप्रत्येक फ़ाइल पर कॉल करके एक रनटाइम वर्चस्व स्वीकार्य है।

जवाबों:


7

बेशक! की जाँच करें FSlint :

एफएसलिंट एक फाइलसिस्टम पर लिंट के विभिन्न रूपों को खोजने और साफ करने के लिए एक उपयोगिता है। आपकी फ़ाइलों या फ़ाइल नामों में IE अवांछित या समस्याग्रस्त cruft। उदाहरण के लिए, लिंट का एक रूप यह पाता है कि डुप्लिकेट फाइलें हैं। इसमें GUI और कमांड लाइन मोड दोनों हैं।

वैकल्पिक शब्द

FSlint स्वतंत्र और खुला स्रोत सॉफ्टवेयर है।


मैं जो चाहता हूं, उसके लिए काफी करीब लग रहा है। धन्यवाद!
पी-नट्स

8

fdupes - निर्देशिकाओं के दिए गए सेट में डुप्लिकेट फ़ाइलें ढूंढता है

fdupes new/ old/

-डी को हटाने के लिए

-N के लिए मत पूछो

fdupes -N -d new/ old/

यह भी प्रत्येक निर्देशिका के भीतर डुप्लिकेट नहीं ढूंढता (और हटाता है)? दूसरे शब्दों में, अगर नई (या पुरानी) में डुप्लिकेट फाइलें होती हैं जो पुराने के भीतर नहीं मिलती हैं या नहीं मिल सकती हैं, तो उन्हें भी हटा दिया जाएगा? मुझे नहीं लगता कि fdupes आपके तर्क "नए" और "पुराने" के रूप में कड़ाई से एक अलग कार्यक्रम है।
स्टीफन Niedzielski
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.