2012-04-10 11 views
21

मैं एक बैश स्क्रिप्ट लिख रहा हूं, और मैं जानना चाहता हूं कि दो निर्देशिका पेड़ों में कौन सी फाइलें समान हैं।दो निर्देशिका पेड़ दिए गए हैं कि कैसे फाइलें एक ही हैं?

यह diff का उपयोग करने के विपरीत होगा।

वैसे मुझे जवाब खुद मिला। मैंने पहले कोशिश की थी, लेकिन मैंने सोचा कि यह काम नहीं करता है।

diff -srq dir1/ dir2/ | grep identical 
+4

'उसी' के किस आवेदन के लिए? नाम दें? Inode? आकार? सामग्री? मॉड टाइम? मालिक? समूह? अनुमतियां? – MattH

+0

अपने निष्कर्षों को उत्तर के रूप में पोस्ट करें – KurzedMetal

उत्तर

27

वैसे मुझे जवाब खुद मिला। मैंने पहले कोशिश की थी, लेकिन मैंने सोचा कि यह काम नहीं करता है।

diff -srq dir1/ dir2/ | grep identical 

क्या -srq मतलब है? diff --help:

-s --report-identical-files Report when two files are the same. 
-r --recursive Recursively compare any subdirectories found. 
-q --brief Output only whether files differ. 
9

आप डुप्लिकेट फ़ाइलें सूची fdupes या rdfind की तरह एक उपयोगिता का उपयोग कर सकते हैं। उदाहरण के लिए:

fdupes --recurse dir1 dir2 

तुम भी बल्कि पाठ ब्लॉकों में से, एक ही लाइन पर सभी डुप्लिकेट सूची, तुम कैसे परिणाम पार्स करने के लिए चाहते हैं पर निर्भर करता है --sameline ध्वज का उपयोग करना चाहते हो सकता है।

+0

यह तकनीक अलग-अलग नामों के साथ समान फ़ाइलों का भी पता लगाती है। सुनिश्चित नहीं है कि diff को ऐसा करने के लिए tweaked किया जा सकता है – Giuseppe