केवल नई फ़ाइलों की प्रतिलिपि बनाएँ - क्या यह संभव है? मूल रूप से दो फ़ोल्डरों को मर्ज करना चाहते हैं


14

मेरे पास ड्राइव 1 पर एक फ़ोल्डर है जिसे संगीत कहा जाता है, और यह 100GB है। मेरे पास ड्राइव 2 पर एक फ़ोल्डर है जिसे संगीत कहा जाता है, और यह 116GB है। यह सबसे अपडेटेड वर्जन है। मैं हर एक फ़ाइल को फिर से लिखने के बिना ड्राइव 2 से ड्राइव 1 के संगीत फ़ोल्डर की प्रतिलिपि कैसे बना सकता हूं?


OS X का कौन सा संस्करण आप उपयोग कर रहे हैं?
निक्स

1
मैं 10.7.4 का उपयोग कर रहा हूं। जब मैं फ़ोल्डर को एक ड्राइव से दूसरे में कॉपी करता हूं, तो मुझसे पूछा जाता है कि क्या मैं बदलना चाहता हूं। कोई मर्ज विकल्प नहीं।
dallen

जवाबों:


5

मर्ज विकल्प केवल तभी दिखाई देगा जब आप फ़ोल्डर को कॉपी (हिलाने के बजाय) कर रहे हैं। सुनिश्चित करें कि आप optionनए फ़ोल्डर को पुराने फ़ोल्डर के स्थान पर खींचते हैं। वैकल्पिक रूप से, का उपयोग कर + cनया फ़ोल्डर कॉपी करने के लिए और + vवर्ष फ़ोल्डर पर चस्पा करने के लिए आप फ़ाइलों को मर्ज करने के लिए विकल्प देना चाहिए।


यह अभी भी उन फ़ाइलों पर लिखने के लिए लगता है जिन्हें फिर से लिखने की आवश्यकता नहीं है। rsyncइसके बजाय का उपयोग करना
ब्रोगर्स

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

24

यह rsync के लिए एक क्लासिक उपयोग का मामला है:

rsync -av /source-path/source-dir /destination-path

rsync केवल नए और परिवर्तित फ़ाइलों को नए स्थान पर कॉपी करेगा।

यह समझना महत्वपूर्ण है कि स्रोत तर्क कार्यों पर एक अनुगामी स्लैश कैसे होता है। यदि कोई अनुगामी स्लैश है तो / source-path / source-dir की सामग्री को गंतव्य-पथ पर कॉपी किया जाएगा । यदि कोई अनुगामी स्लैश नहीं है, तो स्रोत-डीआईआर को गंतव्य पर कॉपी किया जाएगा और इसकी सामग्री गंतव्य पदानुक्रम में एक और स्तर नीचे होगी।

इसलिए यदि आप एक पथ को दूसरे में बदलना चाहते हैं तो अनुगामी स्लैश इस प्रकार है:

rsync -av /sourcepath/sourcedir/ /duplicatpath/sourcedir/

1
शानदार कैच! और अगर आप ऐसा कई ड्राइव्स (या अपने कंप्यूटर पर कहीं भी) से कर रहे हैं और निर्देशिकाओं को टाइप नहीं करना चाहते हैं, तो आप केवल एक ड्राइव (बाहरी यूएसबी, या टाइम कैप्सूल) या केवल एक विशिष्ट निर्देशिका को खींच सकते हैं और इसे जोड़ सकते हैं यह आपके लिए आदेश के लिए है। बस लक्ष्य स्थान को टर्मिनल में खींचें
BRogers

आदमी, अनुगामी स्लेश का सुझाव देने के लिए बहुत बहुत धन्यवाद। मैं हमारा खर्च कर रहा हूँ क्यों rsync -av ./foo/bar / vol1 / foo / bar को सभी मौजूदा फाइलों पर कॉपी किया जा रहा है। ख़ून खराबा लोल !!!
मुस्कुराते हुए

4

अपडेट करें

पहले Coreutils स्थापित करें। भागो brew install coreutils। यदि आपने brewइंस्टॉल नहीं किया है ... विंडोज़ पर वापस जाएं!

जाँचें कि cp --versionआउटपुट संस्करण cp (GNU कोरुटिल्स) 8। ^ ^

तब आपके पास सही cpसंस्करण होगा और -uध्वज काम करेगा।


cpआदेश की जाँच करें । man cpविकल्पों का उपयोग करें और पढ़ें। आप कुछ ऐसा कर सकते हैं:

cp -r -u ~/source ~/destination

-R, -r , -recursive: कॉपी डायरेक्टरी recursively
-u , --update: केवल तभी कॉपी करें जब SOURCE फाइल डेस्टिनेशन फाइल की तुलना में नई हो या जब डेस्टिनेशन फाइल
-p के समान ही गायब हो --preserve = मोड, ओनरशिप , टाइमस्टैम्प
-v --verbose: समझाएं कि क्या किया जा रहा है

इसलिए यदि आप अपने म्यूजिक / नए फोल्डर को डाउनलोड करने के लिए आपसे डाउनलोड / म्यूजिक फोल्डर की फाइलों को कॉपी करना चाहते हैं, तो आप कुछ ऐसा करेंगे: यह इन दोनों फोल्डर की सामग्री को मर्ज कर देगा और यदि एक ही नाम और पथ वाली दो फाइलें मौजूद रहेंगी। टाइमस्टैम्प पर आधारित सबसे नया।
cp -ruvp ~/Downloads/music/* ~/Music/new/


क्या आप सुनिश्चित हैं कि -u विकल्प OSX में cp कमांड के साथ काम करता है? मुझे सियरा में "सीपी: अवैध विकल्प - यू" संदेश मिल रहा है। ऐसा लगता है कि सभी कमांड लिनक्स में समान नहीं हैं।
ओमा

Cp --help कमांड को आज़माएं और देखें कि क्या विकल्प उपलब्ध है। या cp --version की जाँच करें और सुनिश्चित करें कि यह अद्यतित है। मैं उपयोग कर रहा हूं: cp (GNU
कोरुटिल्स

अफसोस की बात है, -यू ओएस एक्स पर सीपी के लिए एक वैध झंडा नहीं है। यह बहुत सुविधाजनक होगा!
प्रति क्वेस्ट आरोनसन

दुर्भाग्य से यह उत्तर गलत है।
विलियम सेर्नियुक

brew install coreutilsसही cpसंस्करण प्राप्त करने के लिए उपयोग करें ।
drew7721

0

सुनिश्चित नहीं हैं कि डिफ़ॉल्ट लायन मर्ज बटन मेरे लिए क्यों नहीं दिखाई देता है। लेकिन मैंने उपयोग करना समाप्त कर दिया ditto। यहां पाया गया: https://superuser.com/a/221599/102789


1
सावधान रहे! ditto नई फाइलें नहीं रखता है, यह हमेशा स्रोत के साथ गंतव्य को ओवरराइट करता है। यदि स्रोत फ़ाइल पुरानी है, तो वह नई फ़ाइल को हटा देगी और पुरानी फ़ाइल से बदल देगी
फ्रांसेस्कोएम

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