कैसे बंद करें cp: './xxx' को अधिलेखित करें? प्रेरित करना


19

मैं अधिलेखित करने के लिए cp कमांड को कैसे रोक सकता हूं। मैं टर्मिनल से वापस जा रहा रखने के लिए सभी फ़ाइलों को अधिलेखित करना चाहता हूं। चूंकि ये बड़ी फाइलें हैं और इन्हें पूरा करने में कुछ समय लगता है।

मैंने -f विकल्प का उपयोग करने की कोशिश की। यह अभी भी पूछता है कि क्या मैं अधिलेखित करना चाहता हूं।

   -f, --force
          if an existing destination file cannot be opened, remove it and
          try again (redundant if the -n option is used)

cp -f /media/somedir/somefiles* .  
cp: overwrite `./somefilesxxx'? y

जवाबों:


17

कॉलिंग के अलावा /bin/cp, आप इनमें से एक कर सकते हैं:

\cp -f ...
command cp -f ...

हालाँकि, मैं मानता हूँ कि आपको एक उपनाम का उपयोग करने का आदी नहीं होना चाहिए जैसे कि - cp -iया rm -iयदि आप एक अलग शेल पर बैठते हैं, तो आपके पास सुरक्षा जाल नहीं होगा जो आप पर निर्भर हो गए हैं।


1
A whereis cpयह दिखाएगा कि कमांड कहां है। तो आप उपनाम के बजाय वास्तविक कमांड को कॉल कर पाएंगे।
एंथनीबी

12

इस उपाय को देखने के बाद। मैं देख सकता था कि बदमाश उर्फ ​​फीचर समस्याओं का कारण बन रहा था। http://systembash.com/content/prompt-to-confirm-copy-even-with-cp-f/

which cp  
alias cp='cp -i'
/bin/cp
which cp | grep cp
alias cp='cp -i'
/bin/cp

वह सिफारिश करता है

unalias cp

मैं अभी भी उर्फ ​​रखना चाहता हूं मैं नहीं चाहता कि वह इस उदाहरण पर लागू हो। मेरा समाधान बाइनरी का उपयोग एक पूर्ण पथ के साथ करना है, ताकि उर्फ ​​उर्फ ​​फ़ंक्शन को खत्म न करें। जो काफी अच्छा काम करता है।

/bin/cp -f /media/somedir/somefiles* .  

4

दुर्भाग्य से लिनक्स पर "cp" कमांड के पास "y" या "n" उत्तर के साथ स्वचालित रूप से इस प्रश्न का उत्तर देने का विकल्प नहीं है। इस समस्या का एक से अधिक समाधान है जो आप करना चाहते हैं उसके आधार पर। एक समाधान यूनिक्स "हां" कमांड का उपयोग करना है। यह कमांड मारे जाने तक एक स्ट्रिंग को बार-बार आउटपुट करेगा।

यदि हम गंतव्य निर्देशिका की सभी फ़ाइलों को अधिलेखित करना चाहते हैं, तो आप "हाँ" के साथ सभी प्रश्नों का उत्तर देने के लिए "हाँ" कमांड का उपयोग कर सकते हैं। "y" एक डिफ़ॉल्ट मान है, इसलिए इसे निर्दिष्ट करने की आवश्यकता नहीं है।

yes | cp source/*.txt destination/.

यदि हम गंतव्य निर्देशिका में किसी भी फाइल को ओवरराइट करने से बचना चाहते हैं, तो आप "हाँ" कमांड का उपयोग कर सकते हैं कि सभी प्रश्नों का उत्तर "नहीं" के साथ दिया जा सकता है।

yes n | cp source/*.txt destination/.

"हां" कमांड के बारे में अधिक जानकारी के लिए "मैन हां" का उपयोग करें।

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