मैं निम्नलिखित कार्य करने के लिए एक छोटा कार्य बनाना चाहता हूं। मान लीजिए कि मैं अपने दस्तावेज़ निर्देशिका में फ़ाइल 'file.tex' को स्थानांतरित करता हूं:
mv file.tex ~/Documents
फिर, मैं cd
उस निर्देशिका को पसंद करूंगा :
cd ~/Documents
मैं इसे किसी भी निर्देशिका में सामान्य बनाना चाहता हूं, ताकि मैं ऐसा कर सकूं:
mv file.tex ~/Documents
follow
और follow
कमांड को पिछले कमांड से गंतव्य को पढ़ें, फिर उसी के अनुसार निष्पादित करें। एक साधारण निर्देशिका के लिए, यह बहुत समय नहीं बचाता है, लेकिन जब नेस्टेड निर्देशिकाओं के साथ काम करते हैं, तो यह सिर्फ उपयोग करने में सक्षम होने के लिए जबरदस्त होगा
mv file.tex ~/Documents/folder1/subfolder1
follow
मुझे लगा कि यह अपेक्षाकृत सरल होगा, और मैं ऐसा कुछ कर सकता हूं:
follow()
{
place=`history 2 | sed -n '1p;1q' | rev | cut -d ' ' -f1 | rev`
cd $place
}
लेकिन यह काम नहीं करता है। यदि मैं प्रतिध्वनि करता हूं $place
, तो मुझे वांछित स्ट्रिंग मिलती है (मैं इसके साथ परीक्षण कर रहा हूं ~/Documents
), लेकिन अंतिम कमांड वापस आती है
No such file or directory
निर्देशिका निश्चित रूप से मौजूद है। मुझे हानि हो रही है। क्या आप मेरी मदद कर पाएंगे?
cd
alt + टाइप करें .
। अंतिम टोकन के इतिहास में आगे जाने के लिए दोहराएं। (मैं कहता हूं कि टोकन अर्ग नहीं है, क्योंकि अंतिम टोकन के रूप में foo &
पकड़ लेता है &
।) आप एक संख्यात्मक तर्क का उपयोग कर सकते हैं (उदाहरण के लिए एस्केप -3 एल + + के साथ)।
file.tex
मूल स्थान पर रखने में कोई आपत्ति नहीं है , तो सिम्बलिंक्स एक बहुत अच्छा विकल्प है, क्योंकि आपको केवल एक बार लिंक करना है, और फिर यह हमेशा नवीनतम संस्करण की ओर इशारा करेगा।