天天看点

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 ~      

继续阅读