在linux下用過命令操作的人都知道,目錄切換用cd,在頻繁在兩個目錄切換可以用 cd -
cd -爲什麼能返回到上一次目錄?
- 在此處等同於 $OLDPWD,保存了bash所記錄的前一個目錄,cd - 和cd $OLDPWD效果一樣
$:cd work/
~/work$:cd -
$:
$:cd -
~/work$:
這樣只能在兩個目錄中切換,那如果需要再多個目錄中切換怎麼辦?一直cd cd cd麼,
這個時候pushd、popd是個好選擇
pushd:把某目錄壓入棧保存並切換到該目錄(方法和程序的出入棧一樣)
popd:出棧,刪掉該最近的目錄
dirs:列出當前堆棧保存的目錄列表
看個例子一目瞭然
hancan@hancan-virtual-machine:~$ pushd test/dir1/
~/test/dir1 ~
hancan@hancan-virtual-machine:~/test/dir1$ dirs -v
0 ~/test/dir1
1 ~
hancan@hancan-virtual-machine:~/test/dir1$ pushd /etc/
/etc ~/test/dir1 ~
hancan@hancan-virtual-machine:/etc$ dirs -v
0 /etc
1 ~/test/dir1
2 ~
hancan@hancan-virtual-machine:/etc$ pushd ~/Music/
~/Music /etc ~/test/dir1 ~
hancan@hancan-virtual-machine:~/Music$ dirs -v
0 ~/Music
1 /etc
2 ~/test/dir1
3 ~
hancan@hancan-virtual-machine:~/Music$ pushd +2 //切換到第2個目錄,即dir1
~/test/dir1 ~ ~/Music /etc
hancan@hancan-virtual-machine:~/test/dir1$ dirs -v
0 ~/test/dir1
1 ~
2 ~/Music
3 /etc
hancan@hancan-virtual-machine:~/test/dir1$ popd +3 //彈出第3個目錄
~/test/dir1 ~ ~/Music
hancan@hancan-virtual-machine:~/test/dir1$ dirs -v
0 ~/test/dir1
1 ~
2 ~/Musichancan@hancan-virtual-machine:~/test/dir1$ popd //不加參數則彈出最近的目錄
~ ~/Music
dirs -c 也可以清空目錄堆棧