方便的目录转换-----pushd、popd、dirs

一、目录栈指令

目录栈是用户最近访问过的系统目录列表,并以堆栈的形式管理。栈中的内容与Shell环境变量DIRSTACK的值对应

1、dirs

1)功能
显示当前目录栈中的所有记录(不带参数的dirs命令显示当前目录栈中的记录)

2)语法
(1)格式:dirs  [-clpv]  [+n]  [-n]
(2)选项
-c    删除目录栈中的所有记录
-l     以完整格式显示
-p    一个目录一行的方式显示
-v    每行一个目录来显示目录栈的内容,每个目录前加上的编号
+N  显示从左到右的第n个目录,数字从0开始
-N   显示从右到左的第n个日录,数字从0开始
注意:dirs始终显示当然目录, 再是堆栈中的内容;即使目录堆栈为空, dirs命令仍然只显示当然目录

2、pushd

1)功能
pushd命令常用于将目录加入到栈中,加入记录到目录栈顶部,并切换到该目录;若pushd命令不加任何参数,则会将位于记录栈最上面的2个目录对换位置

2)语法
(1)格式:pushd  [目录 | -N | +N]   [-n]
(2)选项
目录   将该目录加入到栈顶,并执行"cd 目录",切换到该目录
+N   将第N个目录移至栈顶(从左边数起,数字从0开始)
-N    将第N个目录移至栈顶(从右边数起,数字从0开始)
-n    将目录入栈时,不切换目录

3、popd

1)功能
popd用于删除目录栈中的记录;如果popd命令不加任何参数,则会先删除目录栈最上面的记录,然后切换到删除过后的目录栈中的最上面的目录

2)语法
(1)格式:pushd  [-N | +N]   [-n]
(2)选项
+N   将第N个目录删除(从左边数起,数字从0开始)
-N    将第N个目录删除(从右边数起,数字从0开始)
-n    将目录出栈时,不切换目录


二、 示例

入栈与出栈
root@root:~# mkdir /root/dir{1,2,3,4}
root@root:~# for ((i=1;i<=4;i++)); do pushd /root/dir${i}; done
/root/dir1 ~
/root/dir2 /root/dir1 ~
/root/dir3 /root/dir2 /root/dir1 ~
/root/dir4 /root/dir3 /root/dir2 /root/dir1 ~

root@root:/root/dir4# dirs 
/root/dir4 /root/dir3 /root/dir2 /root/dir1 ~
dirs显出了栈中的所有目录

root@root:/root/dir4# popd(相当于popd +0)
/root/dir3 /root/dir2 /root/dir1 ~
root@root:/root/dir4# dirs
/root/dir3 /root/dir2 /root/dir1 ~
可以看出/root/dir4目录已被清除,此时栈里已经没有了dir4目录,切当前目录切换为dir3

root@root:/root/dir3# pushd /root/dir4 
/root/dir4 /root/dir3 /root/dir2 /root/dir1 ~
不推荐以上面的方法进行切换,因为这种方式和cd没有区别。

root@root:/root/dir4# popd +1
/root/dir4 /root/dir2 /root/dir1 ~
推荐以这种方式进行切换,尤其是目录层次比较多时

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

root@root:/root/dir2# pushd -1
/root/dir1 ~ /root/dir2 /root/dir3 /root/dir4
注意:最左边表示栈顶,最右边表示栈底

清空栈
root@root:~# dirs
~ /root/dir2 /root/dir3 /root/dir4 /root/dir1
root@root:~# dirs -c
root@root:~# dirs
~

列表形式显示的栈的内容
root@root:/root/dir4# dirs -l -v
0  /root/dir4
1  /root/dir3
2  /root/dir2
3  /root/dir1
4  /root

注:如果只是两个目录之间的切换"cd -"足矣,而且方便。“cd -”切回上次用到的目录。

转载地址:http://www.361way.com/pushd/1118.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值