linux 脚本中的push,linux shell之pushd、popd和dirs的使用讲解
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的使用讲解相关推荐
- linux脚本中sed -i,Linux 中常用的sed命令
sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space ...
- linux 脚本中的push,在Linux系统下实现ServerPush(转)
在Linux系统下实现ServerPush(转)[@more@] 由于Linux的开放性,极大激发了程序员的创造力,使得以Linux为作业平台的新技术不断出现.Server Push(推技术)就是其中 ...
- linux 脚本中除法运算符,Linux中Shell的算数运算符和位运算符用法笔记
1.算数运算符 算数运算符主要是加.减.乘.除.余.幂等常见的算术运算,以及加等.减等.乘等.除等.余等复合算术运算. 注意:Shell只支持整数运算,小数部分会舍去.一般情况下算术运行需要个let命 ...
- linux脚本中的exit,Shell中exit和return的区别讲解
1.exit命令 exit命令是Shell内建命令,用于退出当前Shell进程.使用格式如下: exit [] 可以指定退出状态n,n的取值范围是0-255,一般情况下,0表示正常退出,非零表示异常退 ...
- linux exec 脚本之家,详解Shell脚本中调用另一个Shell脚本的三种方式
主要以下有几种方式: Command Explanation fork 新开一个子 Shell 执行,子 Shell 可以从父 Shell 继承环境变量,但是子 Shell 中的环境变量不会带回给父 ...
- 将Linux脚本中的正常输出,警告,错误等信息输出到文件中
将Linux脚本中的正常输出,警告,错误等信息输出到文件中 转载于:https://www.cnblogs.com/lwmp/p/7700339.html
- mint linux更新内核,如何在Ubuntu/Linux Mint中安装最新Linux 5.2.5内核
原标题:如何在Ubuntu/Linux Mint中安装最新Linux 5.2.5内核 Linux 5.2的Ubuntu主线内核包最终可以在32位和64位操作系统中下载和安装. 由于构建失败,Linux ...
- linux脚本 程序输入,[转]Linux中shell脚本如何自动输入…
shell脚本在处理自动循环或大的任务方面可节省大量的时间,通过创建一个处理任务的命令清单,使用变量.条件.算术和循环等方法快速创建脚本以完成相应工作,这比在命令行下一个个敲入命令要省时省力得多. 但 ...
- Linux中shell运行方式,linux脚本中父shell与子shell 执行的几种方式
本文主要介绍以下几个命令的区别: shell subshell source $ (commond) `commond` Linux执行Scripts有两种方式,主要区别在于是否建立subshell ...
最新文章
- 又搜集一批项目源码,同样改改就能用
- MySQL读写分离应用层实现
- mysql测试表格的年龄的语句是_MySQL查询语句练习题,测试基本够用了
- python123 helloworld_python入门
- python中感叹号_C#中感叹号(!) 的作用总结
- Asp.Net Core 2.2.0-preview1已经发布
- [PAT乙级]1009 说反话
- maven webapp栽坑录
- 生成树协议计算机网络,【图片】生成树协议奇怪!我错哪了两边都绿了呀【计算机网络吧】_百度贴吧...
- html+css实现淘宝右侧固定定位导航
- 华为鸿蒙系统操作教程_华为鸿蒙DevEco studio2.0的安装和hello world运行教程
- Ubuntu关机(shut down)(power off)后不断电的问题
- groovy简单介绍
- patreon cg人物插画作品合集分享
- 马克思 第一章 世界的物质性及其发展规律
- 国家及地区MySQL数据
- 安全总结(一)--一键彻底关闭Win10自带Windows Defender杀毒软件
- 怎么对接个人收款支付接口(扫码支付)
- 登录功能实现账号锁定
- HTML5+css+jquery网页设计+加静态网页部署到服务器上
热门文章
- Storm教程3编程接口
- 开启真我新格调 期待绚丽的未知
- 《Android 应用案例开发大全(第二版)》——导读
- mybatisGenerator 代码自动生成报错 Result Maps collection already contains value for BaseResultMap...
- python 装饰器 三 (带有参数的装饰器)
- android 开发不能创建目录
- 安装wps导致 application/kset 上传文件类型报错解决办法
- Functional ProgrammingLazy Code:被我忘记的迭代器
- AspNetCms 国内×××聚
- 谈CRM产品设计的指导思想