डुप्लिकेट फ़ाइलों को खोजने के लिए लिनक्स उपकरण?


13

मेरे पास पाठ फ़ाइलों का एक बड़ा और बढ़ता हुआ सेट है, जो सभी काफी छोटे हैं (100 बाइट्स से कम)। मैं फ़ाइलों और नोटों की प्रत्येक संभावित जोड़ी को अलग करना चाहता हूं जो डुप्लिकेट हैं। मैं ऐसा करने के लिए एक पायथन स्क्रिप्ट लिख सकता था, लेकिन मैं सोच रहा था कि क्या कोई मौजूदा लिनक्स कमांड-लाइन टूल (या शायद टूल का एक सरल संयोजन) है जो ऐसा करेगा?

अद्यतन ( mfinni टिप्पणी के जवाब में ): फाइलें सभी एक ही निर्देशिका में हैं, इसलिए इन सभी में अलग-अलग फ़ाइल नाम हैं। (लेकिन इन सभी में एक फ़ाइल नाम का विस्तार समान है, जिससे उन सभी को वाइल्डकार्ड के साथ चुनना आसान हो जाता है।)


मैं मान रहा हूँ कि फ़ाइल नाम डुप्लिकेट नहीं हैं, केवल सामग्री?
mfinni

यदि आप लिंक से ऊपर की सामग्री देख रहे हैं, तो Pixbeat.org/fslint आपको ऐसा करने में मदद कर सकता है। :)
रजत

जवाबों:


22

वहाँ fdupes है । लेकिन मैं आमतौर पर के संयोजन का उपयोग करता हूंfind . -type f -exec md5sum '{}' \; | sort | uniq -d -w 36


1
इस भिन्नता ने मेरे लिए काम किया: find . -name "*.csv" | xargs md5sum | sort | uniq -D -w 34 (मैंने uniq -D का उपयोग किया, और मैं -सेक्स प्राप्त करने के लिए xargs को प्राथमिकता देता हूं।)
Daryl Spitzer

+1 मुझे fdupes के बारे में पता नहीं था, यह उपकरण बहुत उपयोगी लगता है।
ज़ॉडेचेस

3
@ डेरिल: xargsइस तरह का उपयोग रिक्त स्थान के साथ फ़ाइल नाम के लिए काम नहीं करता है, -execहालांकि उपयोग करता है। -type fअतिरिक्त तर्क के रूप में उपयोग करना find(साथ में उपयोग किया जा सकता है -name) फ़ाइलों की खोज को प्रतिबंधित करता है।
फेनफंडाचटिजिग

Fdupes के लिए +1, चूंकि यह बड़ी बाइनरी फ़ाइलों के लिए तेज़ है, साथ ही साथ।
Bengt

कुछ दुर्लभ मौकों पर मैंने xargs को काम नहीं करने (प्रोसेस्ड फाइल्स की एक निश्चित मात्रा के बाद दुर्घटनाग्रस्त) होने पर भी नहीं ढूंढा, लेकिन पूरे समय के लिए -exec wich नहीं मिला। @fuenfundachtzig, कोई भी xargs -0 --delimiter = "\ n" का उपयोग इस तरह की फाइलों को संभालने के लिए कर सकता है।
ychaouche

6

वैसे FSlint है - जिसका मैंने इस विशेष मामले के लिए उपयोग नहीं किया है, लेकिन मुझे इसे संभालने में सक्षम होना चाहिए: http://en.flossmanuals.net/FSlint/Introduction


एफएसलिंट के लिए +1। बहुत सहज ज्ञान युक्त अंतरफलक और शक्तिशाली अनुकूलन विकल्प।
Glutanimate

3

आप लगभग निश्चित रूप से फ़ाइलों की प्रत्येक जोड़ी को अलग नहीं करना चाहते हैं। आप शायद md5sums जैसी किसी चीज का उपयोग सभी फाइलों और पाइपों के सभी चेकसमों को प्राप्त करने के लिए करना चाहेंगे जो कि किसी अन्य टूल में हैं जो केवल डुप्लिकेट चेकसमों की रिपोर्ट करेंगे।


2
आप केवल उन फ़ाइलों के लिए md5sums की गणना करके md5sums की संख्या को कम कर सकते हैं जो एक आकार की हैं, जिसके लिए उस आकार की एक से अधिक फ़ाइल है। तो सभी फ़ाइलों के लिए जो बाइट्स में एक अद्वितीय आकार के हैं, आपको md5sum की आवश्यकता नहीं है, क्योंकि वे किसी भी चीज़ के डुप्लिकेट नहीं हो सकते हैं।
तोमसेव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.