Linux命令:用“dirs”、“pushd”、“popd”來操作目錄棧
你可以將目錄壓入目錄棧,也可以稍后將該目錄彈出。在隨后的示例中,將會用到以下三個命令:
* dirs:顯示目錄棧
* pushd:將目錄壓入目錄棧
* popd:將目錄彈出目錄棧
dirs命令顯示當(dāng)前所在目錄及目錄棧中的內(nèi)容。即使目錄棧為空,dirs也會顯示當(dāng)前所在的目錄,示例如下:
1
2
3
4
5
6
|
# popd
-bash: popd: directory stack empty
# dirs
~
# pwd
/home/ramesh
|
如何使用pushd和popd呢?讓我們先創(chuàng)建一些臨時的目錄然后把他們壓入目錄堆棧中去。
1
2
3
4
5
6
|
# mkdir /tmp/dir1
# mkdir /tmp/dir2
# mkdir /tmp/dir3
# mkdir /tmp/dir4
# cd /tmp/dir1
# pushd .
|
1
2
3
4
5
6
7
8
9
|
# cd /tmp/dir2
# pushd .
# cd /tmp/dir3
# pushd .
# cd /tmp/dir4
# pushd .
# dirs
/tmp/dir4 /tmp/dir4 /tmp/dir3 /tmp/dir2 /tmp/dir1
[注:顯示的***個目錄名總會是當(dāng)前所在的目錄,而不是顯式壓入堆棧里的內(nèi)容]
|
此時,目錄堆棧就包含以下內(nèi)容:
1
2
3
4
|
/tmp/dir4
/tmp/dir3
/tmp/dir2
/tmp/dir1
|
***被壓入的目錄會在堆棧的頂端。當(dāng)你執(zhí)行“popd”,系統(tǒng)就會跳轉(zhuǎn)到棧頂?shù)哪夸浿?,并且從堆棧中把它清除掉。正如上面所展示的?**壓入堆棧的是/tmp/dir4,所以當(dāng)進(jìn)行一次popd時,就會跳轉(zhuǎn)到/tmp/dir4目錄下同時從堆棧中將它移除。如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# popd
# pwd
/tmp/dir4
[注:執(zhí)行完上popd命令之后,目錄棧包括以下目錄
/tmp/dir3
/tmp/dir2
/tmp/dir1]
# popd
# pwd
/tmp/dir3
[注:執(zhí)行完上popd命令之后,目錄棧包括以下目錄
/tmp/dir2
/tmp/dir1]
# popd
# pwd
/tmp/dir2
[注:執(zhí)行完上popd命令之后,目錄棧包括以下目錄 /tmp/dir1]
# popd
# pwd
/tmp/dir1
[注:執(zhí)行完上popd命令之后,目錄棧包括以下目錄]
# popd
-bash: popd: directory stack empty
|
用“dirs”、“pushd”、“popd”來操作目錄棧就介紹到這里。
【編輯推薦】