मैंने साइगविन पर एक बैश स्क्रिप्ट लिखी है जो rsync
की तरह है, हालांकि मुझे लगता है कि मैं वास्तव में rsync
का उपयोग करने के लिए वास्तव में उपयोग नहीं कर सकता हूं। यह संबंधित निर्देशिकाओं में फ़ाइलों के बारे में एक हजार जोड़े से अधिक है, उन्हें cmp
के साथ तुलना करता है।सिगविन पर फ़ाइल तुलना (`cmp` के साथ) को तेज करना?
दुर्भाग्यवश, यह लगभग धीरे-धीरे चल रहा है - लगभग दस (संपादित करें: वास्तव में 25!) बार जब तक यह एक पायथन प्रोग्राम का उपयोग कर फ़ाइलों के सेटों में से एक उत्पन्न करने के लिए लेता है।
क्या मैं सोच रहा हूं कि यह आश्चर्यजनक रूप से धीमा है? क्या कोई आसान विकल्प है जो तेजी से बढ़ेगा?
(मेरी यूज-केस पर थोड़ा विस्तार से बता दें: मैं एक अस्थायी निर्देशिका में .c
फाइलों का एक समूह autogenerating रहा हूँ, और उन्हें जब मैं दोबारा बनाने, मैं केवल लोगों को बदल दिया है कि कॉपी करना चाहते हैं वास्तविक स्रोत निर्देशिका में, अपरिवर्तित लोगों को बिना छेड़छाड़ किए गए (उनके पुराने निर्माण समय के साथ) छोड़कर make
पता चलेगा कि उन्हें पुन: संकलित करने की आवश्यकता नहीं है। सभी जेनरेट की गई फ़ाइलें .c
फ़ाइलें नहीं हैं, हालांकि, मुझे बाइनरी करने की आवश्यकता है पाठ तुलना की तुलना में तुलना।)
इसके लायक होने के लिए, मैंने पुष्टि की है कि 'rsync' जो मैं चाहता हूं वह नहीं करता है; यह हमेशा अपरिवर्तित फ़ाइलों पर संशोधित समय को रीसेट करता है, या तो मूल पर टाइमस्टैंप (यदि '-t' के साथ कहा जाता है) या स्थानांतरण के समय तक। –
दिलचस्प समस्या..मुझे लगता है कि यह फ़ाइल के टाइमस्टैम्प को अपडेट करने से सिंक को रोकने के तरीके के बारे में भी पूछना उचित है, यह –
@MiserableVariable स्थानांतरित नहीं किया गया है: अच्छा विचार - अब यह है http://unix.stackexchange.com/questions/29845/ कैसे-कर सकते हैं-मैं करते हैं-एक कॉपी-अगर-बदल आपरेशन। (मुझे नहीं लगता कि यह एक डुप्लिकेट है; यह है "मैं इस कार्यक्रम को बेहतर कैसे लिखूं", जबकि यह है "क्या मैं इसे पूरी तरह से टाल सकता हूं?"। –