मेरे पास एक निर्देशिका में कई फाइलें हैं, और मैं जांचना चाहता हूं कि वे सभी अद्वितीय हैं। : सादगी के लिए, मान मैं तीन फ़ाइलें जाने foo.txt
, bar.txt
और baz.txt
। यदि मैं इस लूप को चलाता हूं, तो मैं उन सभी को एक-दूसरे के खिलाफ जांच करूंगा:
$ for f in ./*; do for i in ./*; do diff -q "$f" "$i"; done; done
Files bar.txt and baz.txt differ
Files bar.txt and foo.txt differ
Files baz.txt and bar.txt differ
Files baz.txt and foo.txt differ
Files foo.txt and bar.txt differ
Files foo.txt and baz.txt differ
उन सैकड़ों फाइलों के लिए जिनसे मैं निपटना चाहता हूं, यह बहुत ही अपठनीय होगा; यह फ़ाइलों को सूचीबद्ध करने के लिए बेहतर होगा करने के मैच, और फिर मैं जल्दी से सूची को देखेगा और यह सुनिश्चित करें कि फ़ाइलों को केवल खुद को मिलान कर रहे हैं कर सकते हैं। मैनपेज से, मैंने सोचा होगा कि -s
विकल्प इसे पूरा करेगा:
$ for f in ./*; do for i in ./*; do diff -s "$f" "$i"; done; done
Files bar.txt and bar.txt are identical
Files baz.txt and baz.txt are identical
Files foo.txt and foo.txt are identical
... लेकिन, वास्तव में यह भी बाहर किसी भी फाइल है कि अलग की पूरी सामग्री प्रिंट करता है। क्या इस व्यवहार को दबाने का कोई तरीका है, इसलिए मुझे केवल ऊपर का व्यवहार मिलता है?
वैकल्पिक रूप से, क्या कोई अन्य उपकरण है जो इसे पूरा कर सकता है ?