天天看點

shell pushd指令與popd指令詳解

文章目錄

  • ​​pushd簡介​​
  • ​​pushd文法格式​​
  • ​​pushd常用參數​​
  • ​​pushd示例1​​
  • ​​popd簡介​​
  • ​​popd文法​​
  • ​​popd執行個體​​

pushd簡介

pushed指令用于将目錄加入堆棧中,加入記錄到目錄棧頂部,并切換到該目錄,如果不加任何參數, 則會将位于記錄棧最上面的兩個目錄對換位置。

pushd文法格式

pushed [參數] [目錄]      

pushd常用參數

-n  将右起第n個目錄移到堆棧頂(n從0開始計數)
+n  将左起第n個目錄移到堆棧頂(n從0開始計數)      

pushd示例1

顯示Shell預設的目錄堆棧:

[root@linuxcool ~]# dirs
/var/log
向Shell目錄堆棧中添加目錄/etc:

[root@linuxcool ~]# pushed /etc
顯示Shell目錄堆棧内容,每行一個記錄,并加序号:

[root@linuxcool ~]# dirs -v
0 /sbin
1 /etc
2 /var/log
将第一個記錄移到堆棧頂:

[root@linuxcool ~]# pushed -1
/etc /var/log /sbin

要禁止預設更改目錄,請使用-n選項,例如,要将/usr/local目錄添加到堆棧但不更改到堆棧
[root@linuxcool ~]# pushd -n /usr/local
/etc /usr/local /var/log /sbin

從上到下(或從左到右)計數時,目錄的索引為2:相當于cd

pushd +2

從下到上計數時,/var/www目錄的索引為1:

pushd -1.      

popd簡介

popd指令用于删除目錄棧中的記錄;如果popd指令不加任何參數,則會先删除目錄棧最上面的記錄,然後切換到删除過後的目錄棧中的最上面的目錄。

popd文法

+N:将第N個目錄删除(從左邊數起,數字從0開始);
-N:将第N個目錄删除(從右邊數起,數字從0開始);
-n:将目錄出棧時,不切換目錄。      

popd執行個體

root@Mylinux:/tmp/dir4# popd(相當于popd +0)
/tmp/dir3 /tmp/dir2 /tmp/dir1 ~

root@Mylinux:/tmp/dir3# pushd /tmp/dir4
/tmp/dir4 /tmp/dir3 /tmp/dir2 /tmp/dir1 ~

root@Mylinux:/tmp/dir4# popd +1
/tmp/dir4 /tmp/dir2 /tmp/dir1 ~

root@Mylinux:/tmp/dir4# popd -2
/tmp/dir4 /tmp/dir1 ~      

繼續閱讀