किसी फ़ाइल को केवल तब कॉपी करना जब वह गंतव्य से नया हो


36

मैं लिनक्स में एक फाइल की नकल कैसे कर सकता हूं, जब नकल की जा रही फाइल गंतव्य पर संस्करण की तुलना में नई है?

यदि गंतव्य पर फ़ाइल नया है, तो मैं चाहता हूं कि फ़ाइल प्रतिलिपि आगे न बढ़े।

जवाबों:


54

Cp के साथ अपडेट ऑप्शन (-u) का उपयोग करना चाहिए।

http://beginnerlinuxtutorial.com/help-tutorial/basic-linux-commands/cp-linux-copy-command/


19
भविष्य के पाठकों को कुछ समय बचाने के लिए: इस प्रश्न को लिनक्स को टैग किया जाता है। गैर-जीएनयू सीपी कार्यान्वयन (बीएसडी, मैकओएस आदि) -uविकल्प की कमी है । आप rsync --updateइसके बजाय उपयोग कर सकते हैं ।
user31389

17

Rsync का उपयोग करें

rsync --progress -r -u /from/one/* /to/another/directory

3
बस पूर्णता के लिए: का -rअर्थ है उपनिर्देशिका में पुनरावर्ती संचालन और -uगंतव्य (= अद्यतन) पर नई फाइलें रखने के लिए। --progressऑपरेशन के दौरान प्रगति की जानकारी दिखाता है।
जोर्ग गोत्स्चलिच

6

आप यह नहीं कह रहे हैं कि आप किस शेल का उपयोग कर रहे हैं, इसलिए मैं मान जा रहा हूं ksh:

if [[ file1 -nt file2 ]]; then cp file1 file2; fi

सबसे आम नहीं है?
रोब

1
@ रोब, हाँ। यह बाश में भी काम करता है, जाहिर है। जब मैंने इसे लिखा तो मेरे हाथ में बस (या कोई भी मानक लिनक्स बॉक्स) नहीं था।
कुसलानंद

4

yes|cp -ruv /from/* /to/.
हां - सभी सवालों के जवाब हां में दें।
r - पुनरावर्ती
u - अद्यतन
v - प्रगति

xargs की तरह काम करता है ।

मैं नहीं जानता कि अकादमिक रूप से कैसे समझा जाए।

पुष्टि के बिना cp को अधिलेखित करने के लिए कैसे मजबूर करें


1
यह एक तरह से गूढ़ है। क्या आप अपने उत्तर का विस्तार थोड़ा और स्पष्ट कर सकते हैं, शायद एक उदाहरण शामिल करें? धन्यवाद। समीक्षा से
fixer1234 18

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