2012-12-13 18 views
8

में एक फ़ाइल की प्रतिलिपि बनाएँ और ओवरराइट करें, मैं किसी निश्चित फ़ाइल को किसी स्थान पर कॉपी करना चाहता हूं, भले ही वह फ़ाइल गंतव्य में मौजूद है या नहीं। मैं खोल स्क्रिप्ट के माध्यम से कॉपी करने की कोशिश कर रहा हूं। लेकिन फाइल कॉपी नहीं हो रही है। मैं निम्न आदेशशैल स्क्रिप्ट

/bin/cp -rf /source/file /destination

उपयोग कर रहा हूँ, लेकिन वह काम नहीं करता।

#!/bin/bash 
if [ ! -d "$2" ]; then 
    mkdir -p "$2" 
fi 
cp -R "$1" "$2" 
+0

हो सकता है आप --remove-गंतव्य – jDourlens

+1

प्रयास करना चाहिए 'cp' गंतव्य को ओवरराइड करता है जब तक विकल्प '-n' नहीं दिया जाता है, इसलिए आपका आदेश सफल होना चाहिए। इसके अलावा आपने हमें यह नहीं बताया कि आपका आदेश क्यों विफल रहता है। – scai

+0

क्या कोई त्रुटि संदेश है? –

उत्तर

8

यह सवाल पहले से ही चर्चा की गई है, फिर भी आप इस तरह एक छोटे से स्क्रिप्ट लिख सकते हैं।

6

उपयोग

cp -fr /source/file /destination 

यह शायद इस समस्या का समाधान करना चाहिए:

13

आपकी समस्या डिफ़ॉल्ट रूप से आपके सिस्टम में बनाए गए सीपी कमांड के लिए उपनाम के कारण हो सकती है (आप अपने उपनामों को "उपनाम" टाइप करके देख सकते हैं)। उदाहरण के लिए, मेरे सिस्टम में डिफ़ॉल्ट रूप से निम्न एलिस है: alias cp = 'cp -i', जहां -i ओवरराइड -f विकल्प, यानी cp हमेशा ओवरराइटिंग पुष्टिकरण के लिए संकेत देगा।

आपको इस मामले में क्या चाहिए (जो वास्तव में काम करेगा यदि आपके पास उपनाम नहीं है) तो उस पुष्टि के लिए "हाँ" फ़ीड करना है। ऐसा करने के लिए बस इसे देखने के लिए अपने सीपी कमांड को संशोधित करें:

हाँ | cp/स्रोत/फ़ाइल/गंतव्य

+0

बिल्कुल सही, इसके लिए धन्यवाद! –

1

/bin/सीपी -rf src डीएसटी या /usr/bin/env सीपी -rf

+1

क्या आप समझा सकते हैं कि यह ओपी के कोड के बजाय क्यों काम करता है? – Math

+0

ऐसा इसलिए है क्योंकि ओपी अनजाने में सीपी को 'सीपी -आई' के लिए अलिया कर सकता है, और मुझे लगता है कि कुछ (सभी?) सिस्टम -i विकल्प को प्राथमिकता देंगे। उदाहरण के लिए, अपने सिस्टम पर: '> जो सीपी उर्फ ​​cp = 'सीपी मैं' \t/bin/सीपी > सीपी abc.txt efg.txt cp: ऊपर लिख' efg.txt '? एन > सीपी-एफ abc.txt efg.txt सीपी: 'efg.txt 'ओवरराइट करें? n' – verboze

संबंधित मुद्दे