यदि मैंने उस स्थिति को वन-ऑफ़ के रूप में आते देखा, तो मैं:
a=`pwd`
cd /somewhere/else
cp "$a/myfile" .
यदि ऐसी निर्देशिकाएं थीं जो मैंने खुद को अर्ध-नियमित रूप से फ़ाइलों की प्रतिलिपि बनाते हुए पाईं, तो मैं शायद उनके लिए कुछ mnemonic चरों को उनके .profile में परिभाषित करूंगा।
जोड़ने के लिए संपादित:
इस पर सोने के बाद, मैंने सोचा कि मैं अन्य जीयूआई / ओएस व्यवहारों को कितनी बारीकी से प्राप्त कर सकता हूं जहां आप कुछ संख्या में फ़ाइलों का चयन करते हैं, उन्हें "काट" या "कॉपी" करते हैं, फिर उन्हें कहीं और "पेस्ट" करते हैं। सबसे अच्छा चयन तंत्र जो मैं आपके मस्तिष्क / वरीयताओं के साथ आ सकता था, वह शेल की ग्लोबिंग सुविधा थी। मैं नामकरण के साथ बहुत रचनात्मक नहीं हूं, लेकिन यह मूल विचार है (बैश सिंटैक्स में):
function copyfiles {
_copypastefiles=("$@")
_copypastesrc="$PWD"
_copypastemode=copy
}
function cutfiles {
_copypastefiles=("$@")
_copypastesrc="$PWD"
_copypastemode=cut
}
function pastefiles {
for f in "${_copypastefiles[@]}"
do
cp "${_copypastesrc}/$f" .
if [[ ${_copypastemode} = "cut" ]]
then
rm "${_copypastesrc}/$f"
fi
done
}
इसका उपयोग करने के लिए, कोड को ~ / .bash_profile में, फिर cd
स्रोत निर्देशिका में डालें और copyfiles glob*here
या तो चलाएं cutfiles glob*here
। यह सब होता है कि आपका शेल ग्लब्स का विस्तार करता है और उन फ़ाइलनाम को एक सरणी में रखता है। फिर आप cd
गंतव्य निर्देशिका और चलाने के लिए pastefiles
, जो cp
प्रत्येक स्रोत फ़ाइल के लिए एक कमांड निष्पादित करता है । यदि आपने पहले फ़ाइलों को "कट" किया था, तो पेस्टफाइल्स स्रोत फ़ाइल (या, कोशिश करता है) को भी हटा देता है। यह किसी भी त्रुटि की जाँच नहीं करता है (मौजूदा फ़ाइलों में, संभावित रूप से उन्हें क्लोब करने से पहले cp
; या आपके पास "कट" के दौरान फ़ाइलों को हटाने की अनुमति है, या आप बाहर निकलने के बाद स्रोत निर्देशिका को फिर से एक्सेस कर सकते हैं। इसके)।
cd
कमांड टाइप करना है , ताकि आप कमांडcd -
को वापस बुलाने के लिए पिछली डायरेक्टरी, अप-ऐरो पर वापसcd
जा सकें औरcp
इसके बजाय लाइन एडिट कर सकेंcd
। (ctrl-a (start-of-line), alt-d (किल-वर्ड)cp -a
,, ctrl-e (एंड-ऑफ-लाइन))।