1 问题

我们有时候需要保存多个路径,上下键切换不方便,用cd-只能到上个目录,我们可以用dirs和pushd和popd

2 dirs、pushd、popd

dirs: 这个命令显示栈里面所有的路径,一定会包含当前路径,常用参数如下

dirs -v 显示栈里面的所有路径和下标,通过下标,我们可以用pushd +下标到这个目录,然后popd+下标把这个路径在栈里面弹出来,

dirs -c 清除栈里所有路径,但是当前路径不会删除

pushd:我们可以添加目录到栈(dirs)里面,比如添加当前目录pushd .  然后如果需要到栈里面具体哪个路径的话我们可以pushd +下标,如果是-下标的话,我们是从栈底算起

popd:我们可以弹出栈的最上面的一个路径,我们也可以popd +n弹出栈里面指定的具体路径,如果是-下标的话,我们是从栈底算起

3 使用过程

比如我们在当前目录下新建立4个文件夹dir1、dir2、dir3、dir4

我们cd到dir1里面去,然后把当前路径再添加进去pushd .

我们cd到dir2里面去,然后把当前路径再添加进去pushd .

我们cd到dir3里面去,然后把当前路径再添加进去pushd .

我们cd到dir4里面去,然后把当前路径再添加进去pushd .

我们再查看dirs -v

~/Desktop/linux/dabian/shell/cat/push/dir3

~/Desktop/linux/dabian/shell/cat/push/dir3

~/Desktop/linux/dabian/shell/cat/push/dir4

~/Desktop/linux/dabian/shell/cat/push/dir2

~/Desktop/linux/dabian/shell/cat/push/dir1

很明显当前目录是dir3,比如我们现在要去dir2,我们直接执行pushd +3  再执行dirs -v看下

~/Desktop/linux/dabian/shell/cat/push/dir2

~/Desktop/linux/dabian/shell/cat/push/dir1

~/Desktop/linux/dabian/shell/cat/push/dir3

~/Desktop/linux/dabian/shell/cat/push/dir3

~/Desktop/linux/dabian/shell/cat/push/dir4

很明显我们可以看到当前目录是dir2

比如我们执行下popd,弹出最顶层的那个,目录会切换到最dir1,我们再看下dirs -v

~/Desktop/linux/dabian/shell/cat/push/dir1

~/Desktop/linux/dabian/shell/cat/push/dir3

~/Desktop/linux/dabian/shell/cat/push/dir3

~/Desktop/linux/dabian/shell/cat/push/dir4

然后我们删除dir4看下,popd +4,然后我们再dirs -v看下

~/Desktop/linux/dabian/shell/cat/push/dir1

~/Desktop/linux/dabian/shell/cat/push/dir3

~/Desktop/linux/dabian/shell/cat/push/dir3

很明显当前目录在dir1,我们切换到dir3里面去,pushd +2 然后dirs -v看下

~/Desktop/linux/dabian/shell/cat/push/dir3

~/Desktop/linux/dabian/shell/cat/push/dir1

~/Desktop/linux/dabian/shell/cat/push/dir3

可以看到到了dir3这个目录了,我们再清除所有的栈里面的路径dirs -c,然后我们再dirs看下

~/Desktop/linux/dabian/shell/cat/push/dir3

在当前目录了,没毛病。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

linux 脚本中的push,linux shell之pushd、popd和dirs的使用讲解相关推荐

  1. linux脚本中sed -i,Linux 中常用的sed命令

    sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space ...

  2. linux 脚本中的push,在Linux系统下实现ServerPush(转)

    在Linux系统下实现ServerPush(转)[@more@] 由于Linux的开放性,极大激发了程序员的创造力,使得以Linux为作业平台的新技术不断出现.Server Push(推技术)就是其中 ...

  3. linux 脚本中除法运算符,Linux中Shell的算数运算符和位运算符用法笔记

    1.算数运算符 算数运算符主要是加.减.乘.除.余.幂等常见的算术运算,以及加等.减等.乘等.除等.余等复合算术运算. 注意:Shell只支持整数运算,小数部分会舍去.一般情况下算术运行需要个let命 ...

  4. linux脚本中的exit,Shell中exit和return的区别讲解

    1.exit命令 exit命令是Shell内建命令,用于退出当前Shell进程.使用格式如下: exit [] 可以指定退出状态n,n的取值范围是0-255,一般情况下,0表示正常退出,非零表示异常退 ...

  5. linux exec 脚本之家,详解Shell脚本中调用另一个Shell脚本的三种方式

    主要以下有几种方式: Command Explanation fork 新开一个子 Shell 执行,子 Shell 可以从父 Shell 继承环境变量,但是子 Shell 中的环境变量不会带回给父 ...

  6. 将Linux脚本中的正常输出,警告,错误等信息输出到文件中

    将Linux脚本中的正常输出,警告,错误等信息输出到文件中 转载于:https://www.cnblogs.com/lwmp/p/7700339.html

  7. mint linux更新内核,如何在Ubuntu/Linux Mint中安装最新Linux 5.2.5内核

    原标题:如何在Ubuntu/Linux Mint中安装最新Linux 5.2.5内核 Linux 5.2的Ubuntu主线内核包最终可以在32位和64位操作系统中下载和安装. 由于构建失败,Linux ...

  8. linux脚本 程序输入,[转]Linux中shell脚本如何自动输入…

    shell脚本在处理自动循环或大的任务方面可节省大量的时间,通过创建一个处理任务的命令清单,使用变量.条件.算术和循环等方法快速创建脚本以完成相应工作,这比在命令行下一个个敲入命令要省时省力得多. 但 ...

  9. Linux中shell运行方式,linux脚本中父shell与子shell 执行的几种方式

    本文主要介绍以下几个命令的区别: shell subshell source $ (commond) `commond` Linux执行Scripts有两种方式,主要区别在于是否建立subshell ...

最新文章

  1. 又搜集一批项目源码,同样改改就能用
  2. MySQL读写分离应用层实现
  3. mysql测试表格的年龄的语句是_MySQL查询语句练习题,测试基本够用了
  4. python123 helloworld_python入门
  5. python中感叹号_C#中感叹号(!) 的作用总结
  6. Asp.Net Core 2.2.0-preview1已经发布
  7. [PAT乙级]1009 说反话
  8. maven webapp栽坑录
  9. 生成树协议计算机网络,【图片】生成树协议奇怪!我错哪了两边都绿了呀【计算机网络吧】_百度贴吧...
  10. html+css实现淘宝右侧固定定位导航
  11. 华为鸿蒙系统操作教程_华为鸿蒙DevEco studio2.0的安装和hello world运行教程
  12. Ubuntu关机(shut down)(power off)后不断电的问题
  13. groovy简单介绍
  14. patreon cg人物插画作品合集分享
  15. 马克思 第一章 世界的物质性及其发展规律
  16. 国家及地区MySQL数据
  17. 安全总结(一)--一键彻底关闭Win10自带Windows Defender杀毒软件
  18. 怎么对接个人收款支付接口(扫码支付)
  19. 登录功能实现账号锁定
  20. HTML5+css+jquery网页设计+加静态网页部署到服务器上

热门文章

  1. Storm教程3编程接口
  2. 开启真我新格调 期待绚丽的未知
  3. 《Android 应用案例开发大全(第二版)》——导读
  4. mybatisGenerator 代码自动生成报错 Result Maps collection already contains value for BaseResultMap...
  5. python 装饰器 三 (带有参数的装饰器)
  6. android 开发不能创建目录
  7. 安装wps导致 application/kset 上传文件类型报错解决办法
  8. Functional ProgrammingLazy Code:被我忘记的迭代器
  9. AspNetCms 国内×××聚
  10. 谈CRM产品设计的指导思想