shell pushd命令与popd命令详解
原创
©著作权归作者所有:来自51CTO博客作者ghostwritten的原创作品,请联系作者获取转载授权,否则将追究法律责任
文章目录
pushd简介
pushed命令用于将目录加入堆栈中,加入记录到目录栈顶部,并切换到该目录,如果不加任何参数, 则会将位于记录栈最上面的两个目录对换位置。
pushd语法格式
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语法
pushd(选项)(参数)
选项
+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 ~