Linux命令行技巧——使用目录栈进行导航
Title: Linux命令行技巧——使用目錄棧進行導航
Author: Charles Shih
Create: 2017-08-31 17:03:28
- 目錄棧導航
- 基本命令
- 目錄棧結構
- pushd命令
- popd命令
- 相關文章
目錄棧導航
基本命令
dirs列出當前的目錄棧;
pushd改變目錄并將“原當前目錄”入棧;
popd將棧頂的目錄出棧并改變當前目錄;
備注:dirs命令的-v參數用于列出目錄及其序號,-l參數用于列出目錄全名,而-c參數用于清空目錄棧。
目錄棧結構
[cheshi@cheshi-laptop2 ~]$ dirs -l -v0 /home/cheshi1 /home/cheshi/temp/0/52 /home/cheshi/temp/0/43 /home/cheshi/temp/0/34 /home/cheshi/temp/0/25 /home/cheshi/temp/0/1 [cheshi@cheshi-laptop2 ~]$備注:棧中序號為”0”的是當前目錄,序號越小目錄越靠近棧頂。
pushd命令
pushd與cd命令的異同:
- 相同點:它們都可以改變當前目錄,即棧中序號為”0”的目錄。
- 不同點:cd不改變目錄棧的結構(除序號”0”對應的目錄改變),但pushd會使原來棧中所有目錄的序號加”1”(即發生入棧)。
連續使用不帶參數的pushd命令:當前目錄會在棧中序號為”0”和”1”的目錄之間切換,效果類似于cd -(但cd命令只改變序號為”0”的目錄)。
[cheshi@cheshi-laptop2 0]$ dirs -v0 ~/temp/01 ~/temp/0/52 ~/temp/0/43 ~/temp/0/34 ~/temp/0/25 ~/temp/0/1 [cheshi@cheshi-laptop2 0]$ cd -; dirs -v /home/cheshi/temp/0/50 ~/temp/0/51 ~/temp/0/52 ~/temp/0/43 ~/temp/0/34 ~/temp/0/25 ~/temp/0/1 [cheshi@cheshi-laptop2 5]$ cd -; dirs -v /home/cheshi/temp/00 ~/temp/01 ~/temp/0/52 ~/temp/0/43 ~/temp/0/34 ~/temp/0/25 ~/temp/0/1 [cheshi@cheshi-laptop2 0]$ pushd; dirs -v ~/temp/0/5 ~/temp/0 ~/temp/0/4 ~/temp/0/3 ~/temp/0/2 ~/temp/0/10 ~/temp/0/51 ~/temp/02 ~/temp/0/43 ~/temp/0/34 ~/temp/0/25 ~/temp/0/1 [cheshi@cheshi-laptop2 5]$ pushd; dirs -v ~/temp/0 ~/temp/0/5 ~/temp/0/4 ~/temp/0/3 ~/temp/0/2 ~/temp/0/10 ~/temp/01 ~/temp/0/52 ~/temp/0/43 ~/temp/0/34 ~/temp/0/25 ~/temp/0/1 [cheshi@cheshi-laptop2 0]$pushd +N可以用來“輪尋”堆棧,將當前序號為”N”的目錄循環到棧頂(同時也切換到這個目錄)。這個命令不改變棧中目錄之間的次序關系,它是最常用的“目錄棧”導航方式。
[cheshi@cheshi-laptop2 0]$ dirs -v0 ~/temp/01 ~/temp/0/52 ~/temp/0/43 ~/temp/0/34 ~/temp/0/25 ~/temp/0/1 [cheshi@cheshi-laptop2 0]$ pushd +4; dirs -v ~/temp/0/2 ~/temp/0/1 ~/temp/0 ~/temp/0/5 ~/temp/0/4 ~/temp/0/30 ~/temp/0/21 ~/temp/0/12 ~/temp/03 ~/temp/0/54 ~/temp/0/45 ~/temp/0/3 [cheshi@cheshi-laptop2 2]$此外,pushd也支持-N操作,效果跟+N差不多,只是方向相反,不再贅述。
popd命令
popd正好與pushd相反,使用不帶參數的popd將會使目錄棧中序號為”0”的目錄出棧,其他所有目錄的序號減”1”,原序號為”1”的目錄成為序號為”0”的當前目錄。
[cheshi@cheshi-laptop2 0]$ dirs -v0 ~/temp/01 ~/temp/0/52 ~/temp/0/43 ~/temp/0/34 ~/temp/0/25 ~/temp/0/1 [cheshi@cheshi-laptop2 0]$ popd; dirs -v ~/temp/0/5 ~/temp/0/4 ~/temp/0/3 ~/temp/0/2 ~/temp/0/10 ~/temp/0/51 ~/temp/0/42 ~/temp/0/33 ~/temp/0/24 ~/temp/0/1 [cheshi@cheshi-laptop2 5]$popd +N命令用來將指定序號的目錄出棧,并將其后的所有目錄序號減”1”。但要注意的是,這個操作并不改變當前目錄(除非你指定的是序號為”0”的目錄)。
[cheshi@cheshi-laptop2 0]$ dirs -v0 ~/temp/01 ~/temp/0/32 ~/temp/0/23 ~/temp/0/14 ~/temp/05 ~/temp/0/56 ~/temp/0/4 [cheshi@cheshi-laptop2 0]$ popd +4; dirs -v ~/temp/0 ~/temp/0/3 ~/temp/0/2 ~/temp/0/1 ~/temp/0/5 ~/temp/0/40 ~/temp/01 ~/temp/0/32 ~/temp/0/23 ~/temp/0/14 ~/temp/0/55 ~/temp/0/4 [cheshi@cheshi-laptop2 0]$此外,popd同樣也支持-N操作,與+N類似,只不過它是從棧底開始計數的,因此-0為棧中最后一個目錄,不再贅述。
相關文章
Linux 命令行工具使用小貼士及技巧(一)
Linux 命令行工具使用小貼士及技巧(二)
總結
以上是生活随笔為你收集整理的Linux命令行技巧——使用目录栈进行导航的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高中历史教师资格证考试成功通过前辈备考经
- 下一篇: 【Verilog智能药盒的设计与实现】