डुप्लिकेट फ़ाइलों को कैसे खोजें (और हटाएं)


125

मेरे पास एक लार्जिश संगीत संग्रह है और वहाँ कुछ डुप्लिकेट हैं। क्या डुप्लिकेट फ़ाइलों को खोजने का कोई तरीका है। एक हैश करके कम से कम और यह देखने के लिए कि क्या दो फाइलों में एक ही हैश है।

एक्सटेंशन के अलावा एक ही नाम वाली फ़ाइलों को खोजने के लिए बोनस अंक - मुझे लगता है कि मेरे पास एमपी 3 और ओग दोनों प्रारूप संस्करणों के साथ कुछ गाने हैं।

अगर सबसे आसान तरीका है तो मैं कमांड लाइन का उपयोग करके खुश हूं।

जवाबों:


138

मैं इसके लिए उपयोग करता हूं fdupes। यह एक कमांडलाइन प्रोग्राम है जिसे रिपॉजिटरी से स्थापित किया जा सकता है sudo apt install fdupes। आप इसे पसंद कर सकते हैं fdupes -r /dir/ect/oryऔर यह डुप्स की सूची का प्रिंट आउट लेगा। fdupes में एक सरल मुखपृष्ठ और एक विकिपीडिया लेख भी है , जो कुछ और कार्यक्रमों को सूचीबद्ध करता है।


7
इसमें एक "-d" विकल्प भी है जो आपको यह चुनने देता है कि आप कौन सी कॉपी रखना चाहते हैं, और दूसरे को हटा दें (या आप चाहें तो उन सभी को रख सकते हैं)।
मैथ्यू क्रुमले


क्या fdupes के लिए डुप्लिकेट फ़ाइलों के बजाय डुप्लिकेट फ़ोल्डरों को सूचीबद्ध करना संभव है?
एंडरसन ग्रीन

2
क्या आप अधिक विस्तार से बता सकते हैं कि एक पुनरावर्ती निर्देशिका ट्री में सभी डुप्लिकेट (प्रत्येक फ़ाइल को केवल एक कॉपी छोड़कर) को कैसे हटाया जाए? मैं यह स्वचालित रूप से करना चाहता हूं, जो कि हर बार निर्दिष्ट करना है कि कौन सी फाइल को रखना है। यह सिर्फ एक डुप्लिकेट का चयन करना चाहिए।
becko

5
fdupes -r . -d -Nपहली आवृत्ति को बचाना चाहिए और डुप्लिकेट को हटाना चाहिए। मैंने बस एक ही फोल्डर को fdupes . -d -Nगैर पुनरावर्ती का उपयोग करके सफलतापूर्वक साफ़ कर दिया
सिमोन बी

61

एफएसलिंट में एक जीयूआई और कुछ अन्य विशेषताएं हैं। उनके FAQ से डुप्लिकेट जाँच एल्गोरिथ्म की व्याख्या:

1. exclude files with unique lengths
2. handle files that are hardlinked to each other
3. exclude files with unique md5(first_4k(file))
4. exclude files with unique md5(whole file)
5. exclude files with unique sha1(whole file) (in case of md5 collisions).

fslint Fslint स्थापित करें


12
धन्यवाद। ध्यान दें कि कमांड का नाम "fslint-gui" है, और कमांड लाइन टूल डिफ़ॉल्ट रूप से $ PATH में नहीं हैं - वे / usr / share / fslint / fslint में हैं। जब मैं सिर्फ पैकेज fslint (के माध्यम से / usr / lib / कमांड-नहीं-पाया) चल रहा था में मदद नहीं मिली तो मैं उलझन में था।
18

वास्तव में क्या आवश्यक है
तेबे

1
@nealmcb यदि उपयोग करते हैं sudo apt-get install fslint, तो संस्थापन वर्तमान fslint-guiमें पथ में है और इसलिए मैं इसे केवल टाइप करके कहीं से भी चला सकता हूं fslint-gui। आप यह fslint-guiजान सकते हैं कि टाइप करके जीवन कहाँ which fslint-guiचलता है (यह पायथन लिपि की तरह दिखता है)।
user29020

55

की सूची programs/scripts/bash-solutions, कि डुप्लिकेट पा सकते हैं और के तहत चला सकते हैं nix:

  1. डुपेडिट : कई फाइलों को बिना जांच के एक ही बार में कम्पेयर करता है। जब एकाधिक पथ एक ही फ़ाइल को इंगित करते हैं, तो अपने आप से फ़ाइलों की तुलना करने से बचता है।
  2. द्वैध : विभिन्न प्लेटफार्मों (Win32 / 64 पर Cygwin, * nix, Linux आदि) के साथ चलता है।
  3. द्वैध : पठन को कम करने के लिए अनुकूलित एल्गोरिथ्म के साथ पर्ल।
  4. fdf : पर्ल / सी आधारित और अधिकांश प्लेटफार्मों (Win32, * nix और शायद अन्य) पर चलता है। MD5, SHA1 और अन्य चेकसम एल्गोरिदम का उपयोग करता है
  5. freedups : शेल स्क्रिप्ट, जो आपके द्वारा निर्दिष्ट निर्देशिकाओं के माध्यम से खोज करता है। जब यह दो समान फ़ाइलों को पाता है, तो यह उन्हें एक साथ जोड़ता है। अब दो या अधिक फाइलें अभी भी उनके संबंधित निर्देशिकाओं में मौजूद हैं, लेकिन डेटा की केवल एक प्रति डिस्क पर संग्रहीत है; दोनों निर्देशिका प्रविष्टियाँ समान डेटा ब्लॉक की ओर इशारा करती हैं।
  6. fslint : में कमांड लाइन इंटरफ़ेस और GUI है।
  7. liten : शुद्ध पायथन डिडुप्लीकेशन कमांड लाइन टूल और लाइब्रेरी, md5 चेकसम और एक उपन्यास बाइट तुलना एल्गोरिथ्म का उपयोग करते हुए। (लिनक्स, मैक ओएस एक्स, * निक्स, विंडोज)
  8. liten2 : मूल लिटन का पुनर्लेखन, अभी भी एक कमांड लाइन टूल है, लेकिन SHA-1 चेकसम (लिनक्स, मैक ओएस एक्स, * निक्स) का उपयोग करके एक तेज इंटरैक्टिव मोड के साथ।
  9. rdfind : इनपुट मापदंडों (निर्देशिकाओं को स्कैन करने के लिए) के क्रम के आधार पर डुप्लिकेट रैंक करने वाले कुछ में से एक "मूल / प्रसिद्ध" स्रोतों (यदि कई निर्देशिकाएं दी गई हैं) को हटाने के लिए नहीं। MD5 या SHA1 का उपयोग करता है।
  10. rmlint : कमांड लाइन इंटरफेस के साथ फास्ट फाइंडर और अन्य लिंट को खोजने के लिए कई विकल्प (एमडी 5 का उपयोग करता है)
  11. ua : यूनिक्स / लिनक्स कमांड लाइन टूल, जिसे खोजने के लिए डिज़ाइन किया गया है (और इस तरह)।
  12. खोज : फ्री जावा-आधारित कमांड-लाइन टूल जिसे डुप्लिकेट फ़ाइलों की कुशल खोज के लिए डिज़ाइन किया गया है, यह ज़िप और जार के भीतर खोज कर सकता है। (GNU / Linux, Mac OS X, * nix, Windows)
  13. fdupe : पर्ल में लिखी गई एक छोटी स्क्रिप्ट। अपना काम तेजी से और कुशलता से कर रहा है। 1
  14. ssdeep : Context Triggered Piecewise Hashing का उपयोग करके लगभग समान फ़ाइलों की पहचान करें

4
क्या इनमें से कोई भी प्रोग्राम डुप्लीकेट फोल्डर (न केवल डुप्लीकेट फाइल?) खोजने में सक्षम है
एंडरसन ग्रीन

3
@AndersonGreen डायर डायर rmlintपा सकते हैं। rmlint -T dd
ऑलिगॉफ्रेन

उबंटू के लिए, एक और तरीका फाइलें, खोज (नियंत्रण-एफ) को एक दिए गए एक्सटेंशन (जैसे। एमपी 3) के लिए खोलना है, और फिर फ़ाइल नाम पर सॉर्ट करना है; यह डुप्लिकेट को हाथ से हटाने की अनुमति देगा, और उसी समय डुप्लिकेट के स्थान दिखाएगा।
axd

6

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

यह किया, musicip_puidटैग के आधार पर आप आसानी से अपने सभी डुप्लिकेट गाने पा सकते हैं।


4

एक और स्क्रिप्ट जो यह काम करती है वह है rmdupe । लेखक के पेज से:

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


3

आपने कोशिश की है

finddup

या

finddup -l

मुझे लगता है कि यह ठीक काम करता है।


2

संगीत से संबंधित डुप्लीकेट पहचान और विलोपन पिकार्ड और Jaikoz द्वारा लिए http://musicbrainz.org/ सबसे अच्छा समाधान है। Jaikoz मेरा मानना ​​है कि गीत फ़ाइल के डेटा के आधार पर अपने संगीत को स्वचालित रूप से टैग करता है। आपको गाने की पहचान करने और इसके लिए सभी मेटा डेटा को असाइन करने के लिए गाने के नाम की भी आवश्यकता नहीं है। हालाँकि मुफ्त संस्करण केवल एक रन में सीमित संख्या में गाने टैग कर सकता है, लेकिन आप इसे जितनी बार चाहें चला सकते हैं।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.