आपको खोल कार्यों और एक अस्थायी फ़ाइल की एक जोड़ी के साथ ऐसा करने में सक्षम होना चाहिए।
आपका अस्थायी फ़ाइल '/home/me/.directory_stack
' की तरह कुछ नामित किया जाएगा और केवल निर्देशिका की सूची हो जाएगा:
/home/me
/etc
/var/log
आपका 'push_directory' समारोह बस अपनी सूची में वर्तमान निर्देशिका जोड़ना होगा। 'Pop_directory' फ़ंक्शन सबसे हालिया सूची को बंद कर देगा और उस निर्देशिका पर स्विच करेगा। इस तरह की फाइल में ढेर को संग्रहीत करना सुनिश्चित करता है कि जानकारी सभी खुले टर्मिनल (और यहां तक कि रीबूट के पार भी) में मौजूद है।
directory_stack=/home/me/.directory_stack
function push_dir() {
echo $(pwd) >> $directory_stack
cd $1
}
function pop_dir() {
[ ! -s $directory_stack ] && return
newdir=$(sed -n '$p' $directory_stack)
sed -i -e '$d' $directory_stack
cd $newdir
}
अपने .bashrc
है कि जोड़ें और वे स्वचालित रूप से हर बार जब आप खोल में लॉग इन परिभाषित कर दिया जाएगा:
यहां कुछ उदाहरण कार्य (केवल हल्के से परीक्षण किया चेतावनी) कर रहे हैं।
पुशड और पॉपड अंतर्निहित कमांड हैं और डीआईआर स्टैक प्रत्येक खोल प्रक्रिया द्वारा बनाए रखा जाता है। हां, वैश्विक ढेर रखने का एक तरीका है। वास्तव में कई तरीके। क्या आपने कुछ भी अपनाया है? –