文章作者:Tyan
博客:noahsnail.com | CSDN | 簡書
無論是Mac還是Linux,其實都一樣,在終端下經(jīng)常都需要進行目錄的切換,但每次都用cd命令有點太繁瑣了,特別是在目錄很長,文件夾名字很長的情況下。本文主要是對終端下的一些目錄切換名字的總結(jié)。
1. 兩個目錄之間的切換
-代表的是前一個目錄,如果只在兩個目錄中切換,這個命令就夠了,-等價于$OLDPWD,$OLDPWD也是前一個目錄。其目錄切換的形式如下:
$ cd ~/MyEclipse/
$ cd -
/Users/***/Hexo
$ cd -
/Users/***/MyEclipse
$ cd -
/Users/***/Hexo
$ cd -
/Users/***/MyEclipse
2. 多個目錄之間的切換
多個目錄的切換要用到pushd,popd,dirs命令,下面是三個命令的解釋:
dirs:顯示目錄棧
pushd:將目錄壓入目錄棧,并切換目錄(虛擬堆棧)
popd:將目錄彈出目錄棧,并切換目錄(虛擬堆棧)
多余的話不說,直接上例子更直觀:
# pushd會將參數(shù)目錄和當(dāng)前目錄壓入目錄棧(虛擬堆棧)中,并跳轉(zhuǎn)到參數(shù)目錄,壓入目錄棧是按順序壓入的,~是當(dāng)前用戶的根目錄
$ pushd Hexo
~/Hexo ~
$ pwd
/Users/***/Hexo
# pushd不加參數(shù),回到前一個目錄,并將當(dāng)前目錄壓入目錄棧中
$ pushd
~ ~/Hexo
$ pwd
/Users/***
# dirs查看目錄棧中的目錄
$ dirs
~/Hexo ~
# dirs -v顯示目錄的編號,并將目錄按行排列,0代表新壓入目錄棧的目錄
$ dirs -v
0 ~/Hexo
1 ~
# 壓入一個新的目錄到目錄棧
$ pushd MyEclipse/
~/MyEclipse ~ ~/Hexo
$ pwd
/Users/***/MyEclipse
# dirs -p是按行顯示目錄棧中的目錄
$ dirs -p
~/MyEclipse
~
~/Hexo
# popd是將棧頂?shù)哪夸洀棾?,即編號?的目錄,并將目錄切換到目錄彈出后的棧頂目錄
$ popd
~ ~/Hexo
$ pwd
/Users/***
$ popd
~/Hexo
# 如果棧中只有一個目錄,即當(dāng)前目錄,是不能使用popd的
$ popd
-bash: popd: directory stack empty
# 如果棧中只有一個目錄,是不能使用pushd的
$ pushd
-bash: pushd: no other directory
# dirs -c 清空目錄棧,只剩當(dāng)前目錄在目錄棧中
dirs -c
$ pushd MyEclipse/
~/MyEclipse ~
$ pushd ~/Hexo/
~/Hexo ~/MyEclipse ~
$ pushd ~/Practice/
~/Practice ~/Hexo ~/MyEclipse ~
$ dirs -v
0 ~/Practice
1 ~/Hexo
2 ~/MyEclipse
3 ~
# popd +n 彈出目錄棧中指定位置的目錄,并將目錄切換到棧頂目錄
$ popd +2
~/Practice ~/Hexo ~
$ dirs -v
0 ~/Practice
1 ~/Hexo
2 ~
# push +n 將目錄切換到指定位置的目錄,并將其壓入目錄棧棧頂
$ pushd +2
~ ~/Practice ~/Hexo
$ dirs -v
0 ~
1 ~/Practice
2 ~/Hexo
備注:如例子所示,如果只有兩個目錄的情況下,可以一直用pushd切換目錄。