मैं cpकमांड का उपयोग करने और एक अधिलेखित करने के लिए मजबूर कर रहा हूं ।
मैंने कोशिश की है cp -rf /foo/* /bar, लेकिन मुझे अभी भी प्रत्येक ओवरराइट की पुष्टि करने के लिए प्रेरित किया जाता है।
मैं cpकमांड का उपयोग करने और एक अधिलेखित करने के लिए मजबूर कर रहा हूं ।
मैंने कोशिश की है cp -rf /foo/* /bar, लेकिन मुझे अभी भी प्रत्येक ओवरराइट की पुष्टि करने के लिए प्रेरित किया जाता है।
जवाबों:
आप कर सकते हैं yes | cp -rf xxx yyy, लेकिन मेरी गुफ्तगू यह कहती है कि यदि आप इसे रूट के रूप में करते हैं - आपके पास .bashrcया .profileइसका एक उपनाम cpहै cp -i, तो अधिकांश आधुनिक सिस्टम (मुख्य रूप से आरएच-डेरिवेटिव) प्रोफाइल को रूट करने के लिए करते हैं।
आप मौजूदा aliasप्रॉम्प्ट पर कमांड प्रॉम्प्ट पर which cpचलकर या केवल एलियास की जांच कर सकते हैं cp।
यदि आपके पास कोई अन्य परिभाषित नहीं है, unalias cpतो चालू सत्र के लिए यह समाप्त हो जाएगा, अन्यथा आप इसे केवल अपने शेल प्रोफ़ाइल से हटा सकते हैं।
आप अस्थायी रूप से एक उपनाम को बायपास कर सकते हैं और एक कमांड के गैर-अलियास संस्करण का उपयोग करके इसे उपसर्ग कर सकते हैं \, जैसे\cp whatever
¯\_(ツ)_/¯बारे में हूँ ।
(primarily RH-derivatives)टिप्पणी जोड़ी :)
unalias cpजो कुछ भी आपको कॉपी करने की आवश्यकता है, उसे करने और कॉपी करने के बाद , आप अपने डिफ़ॉल्ट रूप से उपनाम को सेट कर सकते हैं alias cp='cp -i'। जिसके बाद, इसे चलाएं alias cpताकि आप पुष्टि कर सकें कि यह डिफ़ॉल्ट रूप से उपनाम के लिए वापस आ गया है।
यह संभवत: cpपहले से ही किसी चीज की तरह एलियास होने के कारण होता है cp -i। कॉलिंग cpसीधे काम करना चाहिए:
/bin/cp -rf /zzz/zzz/* /xxx/xxx
इसका उपयोग करने का एक और तरीका yesकमांड का उपयोग करना है :
yes | cp -rf /zzz/zzz/* /xxx/xxx
yesकमांड प्रदान करता है । प्रफुल्लित। और किसी दिन मैं इसका इस्तेमाल कर सकता हूं।
के रूप में अन्य उत्तर में से कुछ कहा है, तो आप शायद एक उपनाम कहीं जो नक्शे का उपयोग cpकरने के लिए cp -iया कुछ इसी तरह। आप बैकलैश के साथ इसे पूर्ववर्ती किसी उपनाम के बिना एक कमांड चला सकते हैं। अपने मामले में, प्रयास करें
\cp -r /zzz/zzz/* /xxx/xxx
बैकस्लैश आपके द्वारा बुलाए गए किसी भी उपनाम को अस्थायी रूप से अक्षम कर देगा cp।
cp, उपनाम को लागू करने के बजाय , \cpकमांड को लागू करेगा cp। यह चलने के बराबर प्रतीत होता है command cp।
आपके पास संभवतः कहीं एक उपनाम है, मानचित्रण cpकरने के लिए cp -i; क्योंकि डिफ़ॉल्ट सेटिंग्स के साथ, cpअधिलेखित करने के लिए नहीं कहेंगे। अपनी .bashrc, अपनी .profileआदि की जाँच करें ।
Cp मैनपेज देखें : केवल जब -iपैरामीटर निर्दिष्ट किया जाता है तो cpवास्तव में ओवरराइटिंग से पहले संकेत मिलेगा ।
आप इसे aliasकमांड के माध्यम से देख सकते हैं :
$ alias
alias cp='cp -i'
alias diff='diff -u'
....
उपनाम को अपरिभाषित करने के लिए, उपयोग करें:
$ unalias cp
जैसा कि अन्य जवाबों में कहा गया है, यदि cpयह किसी अन्य व्यक्ति का है तो यह खुश हो सकता है cp -i।
आप उपनाम के बिना इसका उपयोग करने \से पहले cpकमांड को जोड़ सकते हैं ।
\cp -fR source target
डिफ़ॉल्ट रूप cpसे एलियास है cp -i। आप इसे aliasदेख सकते हैं , टाइप करें और आप कुछ इस तरह देख सकते हैं:
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
इस समस्या को हल करने के लिए /bin/cp /from /toइसके बजाय केवल कमांड का उपयोग करेंcp /from /to
cp आमतौर पर इस तरह से अलियास किया जाता है
alias cp='cp -i' # i.e. ask questions of overwriting
यदि आप सुनिश्चित हैं कि आप ओवरराइट करना चाहते हैं तो इसका उपयोग करें:
/bin/cp <arguments here> src dest
मुझे मिला
'cp' -rf * /data/danalonso_testing/target/
स्रोत: /superuser/358843/how-to-replace-all-the-contents-from-one-folder-with-another-one/358851
इसलिए मैं इसमें बहुत भागता हूं क्योंकि मैं cp को अलियास रखता हूं cp -iv, और मुझे एक नीरस चाल मिली। यह पता चला है कि जबकि -iऔर -nदोनों पिछले ओवरराइट निर्देशों को रद्द करते हैं , -fनहीं। हालाँकि, यदि आप इसका उपयोग -nfकरते हैं , तो इसे साफ़ करने की क्षमता बढ़ जाती है -i। इसलिए:
cp -f /foo/* /bar <-- Prompt
cp -nf /foo/* /bar <-- No Prompt
बहुत साफ है ना? / necropost
cp -u ...
cp --update ...
भी काम करता है।
अलियास के बिना कमांड को कॉल करने का दूसरा तरीका है commandबेसिन में बैश का उपयोग करना ।
command cp -rf /zzz/zzz/*
-n "ओवरराइट करने के लिए नहीं" है, लेकिन उसका प्रश्न इसके विपरीत है जो आपने उत्तर दिया था।
इस पुष्टि से बचने के लिए आप बस cp कमांड wiht निरपेक्ष पथ को चला सकते हैं, यह उपनाम से बच जाएगा।
/ बिन / सीपी सोर्सफाइल गंतव्य
यदि आप वैश्विक स्तर पर उर्फ को रखना चाहते हैं और अपनी स्क्रिप्ट के लिए बदलना चाहते हैं।
महज प्रयोग करें:
alias cp = cp
और फिर अपने अनुवर्ती आदेश लिखें।
मैंने बस "cp -i" उर्फ को हटाने के लिए यूनीलैस का इस्तेमाल किया, फिर कॉपी किया, फिर उर्फ को वापस सेट किया। :
unalias cp
cp -f foo foo.copy
alias cp="cp -i"
सबसे सुंदर कोड नहीं, लेकिन सेट करना आसान और कुशल है। मैं यह भी जाँचता हूं कि उपनाम पहले से ही एक साधारण के साथ वापस सेट है
alias |grep cp
यह नहीं है cp -i। यदि आप पुष्टि के लिए नहीं पूछना चाहते हैं, तो यह है cp -n; उदाहरण के लिए:
cp -n src dest
या निर्देशिका / फ़ोल्डर के मामले में है:
cp -nr src_dir dest_dir
cp -iसिस्टम द्वारा उपयोगकर्ता-सामना करने वाले cp को सहानुभूति दी गई थी, जिसका अर्थ है कि वे डिफ़ॉल्ट को दूर करने और एक अधिलेखित करने के लिए बाध्य कर रहे थे । ऐसा लगता है कि आप भ्रमित हो सकते हैं कि सुझाए गए वाक्यविन्यास के लिए, लेकिन एक ओवरराइट -nको रोक देगा।