趣谈shell节选:一战(栈)成名
本文更新日期:2019年11月2日
很多聪明人会发明一些聪明的工具,但是却秘不示人,只在与人对决中,亮出杀手锏,一战成名。至于对手嘛,连自己是怎么死的,都往往不清楚。
历史上这样的例子比比皆是,例如大名鼎鼎的牛顿,早就发明了微积分,但是一直没有公布研究成果,暗中利用微积分解决了跑上门来的各种挑战。
在上古时期,都是机械化,手动化的解决问题,人们通过cd命令来切换一个又一个目录,这种手动输入路径,在多个文件中切换是一件非常麻烦的事情。后来,一个聪明人发明了一个新的工具,一下子就破解了这个难题,这个工具就是:栈。使用pushd和popd的时候,完全可以无视cd命令。栈的用法如下:
(1)$pushd /var/www,切换当前目录到/var/www,并将/var/www压入栈
(2)$pushd /usr/local,切换当前目录到/usr/local,并将/usr/local压入栈
(3)dirs,用于查看栈里面的内容,此时显示为:/usr/local /var/www ~,栈里面的内容存放是有序的:/usr/local为0,/var/www为1,~为2
(4)pushd +1,表示切换到栈中1的目录,也就是:/var/www,此时dirs一下查看栈的内容,则变为:/var/www ~ /usr/local
(5)popd +2,删除2位置,此时栈内的内容变为:/var/www ~
聪明人与普通人的对决中,普通人使用cd手动切换目录,而聪明人使用栈,效率极快,从而一战(栈)成名。