वर्तमान निर्देशिका में कॉपी करने के लिए cp को संशोधित करें यदि कुछ और निर्दिष्ट नहीं है


0

cpअगर मैं एक गंतव्य निर्दिष्ट नहीं करता हूं तो क्या मैं इसे संशोधित कर सकता हूं ताकि यह वर्तमान निर्देशिका में कॉपी हो जाए?

मैं चाहता हूं कि यह आदेश $ cp ../launcher.sh .समतुल्य हो $ cp ../launcher.sh। क्या यह संशोधन संभव है?

संपादित करें

यहां मेरा अब तक का सर्वश्रेष्ठ प्रयास है। जब मैं कवक को कुछ और कहता हूं तो cpयह काम करता है ...

function cp() {
if [ "$#" -ne 1 ]; then
    cp $1 $2
else
    cp $1 .
fi
}

अपनी खुद की sh स्क्रिप्ट लिखें और फिर इसे cp को उपनाम दें?
ब्लूव्हेल

यही सही लगता है!
किलोजूल

यदि यह आपकी मदद करता है तो आप अपने प्रश्न का उत्तर दे सकते हैं। वही समस्या वाले अन्य लोग आपका समाधान पा सकते हैं
ब्लूव्हेल

मैं वास्तव में नहीं जानता कि कैसे बैश cpफंक्शन लिखना है
किलोजूल

1
यदि आपने फ़ंक्शन बॉडी के /bin/cpबजाय उपयोग किया cpहोता, तो मुझे लगता है कि यह काम करता। मैं पहले से ही उर्फ ​​था cp, लेकिन मैंने एक समान फ़ंक्शन का परीक्षण किया mvऔर /bin/mv, और यह ठीक था।
AFH

जवाबों:


2

आपको कुछ इस तरह की आवश्यकता है: -

CP() { [ $# == 1 ] && cp "$@" . || cp "$@"; }
alias cp=CP

~/.bashrcयदि आप एक अर्ध-स्थायी परिवर्तन चाहते हैं तो इन्हें जोड़ा जा सकता है ।

ध्यान दें कि एक स्क्रिप्ट में एक उपनाम काम नहीं करेगा: यदि आपको एक बदलाव की आवश्यकता है जो स्क्रिप्ट में काम करेगा cp, तो पहले वास्तविक के स्थान की पुष्टि करने के बाद , आप $HOME/binअपनी $PATHसूची के प्रमुख पर एक निजी निर्देशिका का उपयोग कर सकते हैं और इसमें एक निष्पादन योग्य स्क्रिप्ट बना सकते हैं cpयुक्त: -

/bin/bash
[ $# == 1 ] && /bin/cp "$@" . || /bin/cp "$@"

आप जोड़ने की आवश्यकता होगी export PATH=$HOME/bin:$PATHकरने के लिए~/.bashrc

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

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