说明

  • 使用shell开发一些较为复杂的系统,例如:复杂的编译系统等,可能会遇到类似需求:source 脚本后,在任意目录执行封装好的编译命令,跳转到其它目录执行相应的编译命令,编译完后再跳转回来。
  • 常见的处理:使用cd命令跳转,由于初始路径可能是任意目录,不方便使用相对路径进行跳转,使用绝对路径,在跳转前使用变量记录下当前路径,最后再根据该变量跳转回来,多次跳转,操作类似于栈操作。
  • 如果自己实现和封装以上操作(路径跳转的记录和管理)容易出错,其实linux上已有类似功能的命令(pushd popd dirs)。

pushd

  1. 作用
  • pushd命令将目录加入到栈中,加入记录到目录栈顶部,并跳转到该目录;若pushd命令不加任何参数,则会将位于记录栈最上面的2个目录对换位置。
  1. 语法
格式:pushd  [目录 | -N | +N]   [-n]
目录  将该目录加入到栈顶,并执行"cd 目录",切换到该目录
+N    将第N个目录移至栈顶(从左边数起,数字从0开始)
-N    将第N个目录移至栈顶(从右边数起,数字从0开始)
-n    将目录入栈,但不切换目录

popd

  1. 作用
  • popd用于删除目录栈中的记录;如果popd命令不加任何参数,则会先删除目录栈最上面的记录,然后切换到删除过后的目录栈中的最上面的目录。
  1. 语法
格式:popd  [-N | +N]   [-n]
+N   将第N个目录删除(从左边数起,数字从0开始)
-N   将第N个目录删除(从右边数起,数字从0开始)
-n   将目录出栈,但不切换目录

dirs

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

Linux shell - 目录栈操作(pushd popd dirs)相关推荐

  1. Linux: 让切换目录更方便: pushd,popd,dirs,cd -

    一,为何要使用这几个命令?   可能大家会有疑问,为何要使用这几个命令,   难道用cd不就可以切换目录了吗?   没错,使用cd就可以切换到需要访问的目录,   但是有时会是一个路径很长,层次很多的 ...

  2. linux怎么连续退回上次目录?cd - 只能在两个目录间来回切换(autojump)(pushd popd dirs)

    方法1 GitHub 搜索 autojump ,可能会满足你的需求. 参考文章:linux怎么连续退回上次目录? - Nlage的回答 - 知乎 方法2 pushd popd dirs 当进到想保存的 ...

  3. linux shell pushd popd dirs命令

    1.dirs 1)功能 显示当前目录栈中的所有记录(不带参数的dirs命令显示当前目录栈中的记录) 2)语法 (1)格式:dirs  [-clpv]  [+n]  [-n] (2)选项 -c    删 ...

  4. win7下运行linux命令,win7系统32位旗舰版iso运行linux shell脚本的操作办法

    win7旗舰版是用户量最大的一款操作系统:有不少人在使用中都遇见了win7系统运行linux shell脚本的问题,对于电脑不太熟悉的朋友面对win7系统运行linux shell脚本便无计可施,其实 ...

  5. linux对目录进行操作,Linux 基础:对文件和目录进行操作的 Linux 和 Unix 命令 笔记...

    参考文章<Linux Basic – Linux and Unix Commands for File and Directory Manipulation> https://www.ji ...

  6. linux 主目录改名,Linux之目录的操作(创建、移动、改名、删除、复制)

    .创建 mkdir [dirname] //创建单个目录 mkdir -p newdir1/newdir2/newdir3 //递归创建多级目录 mkdir dir1/dir2/newdir3 //在 ...

  7. linux l字符串,Linux shell 字符串常用操作

    取变量的长度[root@oldjun-study scripts]# var=oldboy123 [root@oldjun-study scripts]# echo ${var} oldboy123 ...

  8. Linux命令行技巧——使用目录栈进行导航

    Title: Linux命令行技巧--使用目录栈进行导航 Author: Charles Shih Create: 2017-08-31 17:03:28 目录栈导航 基本命令 目录栈结构 pushd ...

  9. linux 关联数组,Linux shell数组与关联数组的用法实例

    Linux shell数组与关联数组的用法实例 1. 关联数组 使用 declare -A(declare 的用法请使用 help 进行查看,help declare) 进行声明关联数组变量: $ d ...

最新文章

  1. 关于 AppDelegate 、UIApplication 简单的用法
  2. webstorm配置ESLint 一直
  3. linux vim编辑文本是 m,linux基础命令介绍四:文本编辑 vim
  4. BootLoader引导程序制作及移植(二)
  5. 关于浮点数的原理详解
  6. MyCAT+MySQL 搭建高可用企业级数据库集群
  7. VTK:PolyData之ConnectivityFilter_LargestRegion
  8. 学习SpringMVC笔记——Intellij IDEA创建SpringMVC项目
  9. java spring aop 注解包_Spring AOP 注解配置实例
  10. Scala中的while循环
  11. 这就是飞秋下载早期的学习生涯
  12. 随便说说程序员团队精神的荣辱与共
  13. php网站跨站脚本监测,基于PHP的在线跨站脚本检测工具.pdf
  14. 杰出企业家的20个好习惯
  15. java 日历选择天_如何从Java中的日历对象构建天,月,年的列表?
  16. BT500-BT1788主观质量评价
  17. ② 判断语句、循环语句
  18. SQL UCASE() 函数
  19. python清洗数据 food ounces animal_Wonz 的动态 - SegmentFault 思否
  20. Leetcode_202_Happy Number

热门文章

  1. DSF分布式服务框架
  2. 52 通过键值对访问字典
  3. python中sum函数的使用方法及实例_sum函数语法与使用
  4. win7的chrome经常出现DNS查找失败解决方法
  5. epic导入游戏_如何获得Epic Store游戏的退款
  6. Python 中JSONDecodeError: Expecting value: line 1 column 1 (char 0)错误
  7. python导出百万数据到excel_[宜配屋]听图阁
  8. Ios 11 android 7,安卓8.0发布同时 苹果的iOS 11 beta 7也来了
  9. 深度 | 蔚来的“危险游戏”
  10. 计算机专业杭州申请公租房有,杭州公租房申请指南