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

在当前目录了,没毛病。

总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/393037.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么我从 Git Flow 开发模式切换到了 Trunk Based 开发模式?

我已经使用 Git Flow 构建我的 Git 分支有几年了。但是,我遇到了 Git Flow 的一些问题,其中大部分来自长期存在的分支。解决这些问题的方案就是 Trunk Based Development。这是一个非常简单的技术,也是有效的持续交付的基础。在这篇文章中&am…

DedeCMS 提示信息! ----------dede_addonarticle

把数据保存到数据库附加表 dede_addonarticle 时出错,请把相关信息提交给DedeCms官方。Duplicate entry ’2532′ for key ‘PRIMARY’出现这种情况其实是你的主键是不可重复的,现在重复插入值为2532的主键了。可以去掉主键唯一,或是设成自增…

angular 模块构建_通过构建全栈应用程序学习Angular 6

angular 模块构建Angular 6 is out! The new features include better performance, new powerful CLI additions and a new way to inject services.Angular 6出来了! 新功能包括更好的性能,新的功能强大的CLI附加功能以及注入服务的新方法。 This tut…

leetcode74. 搜索二维矩阵(二分查找)

编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 示例 1: 输入: matrix [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ] tar…

搭建基于.NetFrameWork的私有nuget服务端及打包项目发布上传

一、私有Nuget服务端搭建 1.创建一个.NetFramework web项目 2.在nuget管理中 安装 nuget.server包 3.安装完成后修改web.config里面的 apikey 和 packagesPath apikey:推送包到nuget服务端 packpage: 上传上来的包存放的服务器位置 4.发布web项目到IIS中&#xff0c…

linux 网络配置 阮一峰,Vim 配置入门

Vim 是最重要的编辑器之一,主要有下面几个优点。可以不使用鼠标,完全用键盘操作。系统资源占用小,打开大文件毫无压力。键盘命令变成肌肉记忆以后,操作速度极快。服务器默认都安装 Vi 或 Vim。Vim 的配置不太容易,它有…

spring 之 property-placeholder 分析

不难知道&#xff0c; property-placeholder 的解析是 PropertyPlaceholderBeanDefinitionParser 完成的&#xff0c; 但是 它仅仅是个parser &#xff0c; 它仅仅是读取了 location 等配置属性&#xff0c; 并没有完成真正的解析&#xff0c;及 注册。 <context:property-p…

leetcode面试题 10.02. 变位词组

编写一种方法&#xff0c;对字符串数组进行排序&#xff0c;将所有变位词组合在一起。变位词是指字母相同&#xff0c;但排列不同的字符串。 注意&#xff1a;本题相对原题稍作修改 示例: 输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”], 输出: [ [“ate”,…

hacktoberfest_我第一次参加Hacktoberfest中学到了什么

hacktoberfestImposter syndrome is something we all struggle with to one degree or another. Imposter syndrome is the fear of exposure as a fraud. If you’re anything like me you have felt like your work was not good enough to show. Or you weren’t far along…

--save 和--save-dev的区别

npm install 在安装 npm 包时&#xff0c;有两种命令参数可以把它们的信息写入 package.json 文件&#xff0c;一个是npm install --save另一个是 npm install --save-dev&#xff0c;他们表面上的区别是--save 会把依赖包名称添加到 package.json 文件 dependencies 键下&…

Linux 文件区块连续吗,关于Linux文件系统的的简单理解和认识

关于Linux文件系统的的简单理解和认识关于文件系统的运作&#xff0c;这与操作系统带的档案数据有关。例如Linux操作系统的档案权限(rwx)与文件属性(拥有者&#xff0c;群组&#xff0c;时间参数等)。文件系统通常会将这两部分的数据分别存放在不同的区块&#xff0c;权限与属性…

服务器性能和活动监视

监视数据库的目的是评估服务器的性能。 有效监视包括定期拍摄当前性能的快照来隔离导致问题的进程&#xff0c;以及连续收集数据来跟踪性能趋势。 Microsoft SQL Server 和 Microsoft 操作系统提供实用工具&#xff0c;使您可以查看数据库的当前状态并跟踪性能的状态变化。 下一…

Microsoft Desktop Virtualization

基本上有两套啦&#xff0c;一是大家较为熟悉的MED-V。另外就是VDI(虚拟桌面基础架构)&#xff0c;也就是以下的组合&#xff1a;1、Windows Server 2008 with Hyper-V 2、System Center Virtual Machine Manager (VMM) 2008 VMM 20083、Windows Vista Enterprise Centralized …

leetcode60. 第k个排列(回溯算法)

给出集合 [1,2,3,…,n]&#xff0c;其所有元素共有 n! 种排列。 按大小顺序列出所有排列情况&#xff0c;并一一标记&#xff0c;当 n 3 时, 所有排列如下&#xff1a; “123” “132” “213” “231” “312” “321” 给定 n 和 k&#xff0c;返回第 k 个排列。 说明&…

webpack设置应用缓存_如何使用Webpack在Rails应用程序中设置TinyMCE

webpack设置应用缓存by Joanna Gaudyn乔安娜高登(Joanna Gaudyn) 如何使用Webpack在Rails应用程序中设置TinyMCE (How to setup TinyMCE in your Rails app using Webpack) The popularity of using Webpack to deal with your assets in Rails is steadily increasing. Getti…

springmvc ajax 页面无法重定向问题!!!!

诶诶诶。这个问题困扰了我一天&#xff0c;百度了很多都不行。 刚实战ssm框架&#xff0c;做登录跳转的时候&#xff0c;我是用ajax提交数据到后台&#xff0c;然后后天返回数据进前台&#xff0c;前台再给用户一些比较友好的提示&#xff0c;比如用户名或密码错误之类的。 所以…

linux svn log 乱码,解决p42svn中文log乱码的问题

现象&#xff1a;将perforce代码库迁移至SVN时log乱码。p42svn.pl在windows下运行至"-|"时会报错&#xff0c;于是安装了linux虚拟机&#xff0c;从虚拟linux中运行p42svn.pl生成dump文件&#xff0c;再传至windows下用svnadmin load。可是在svn查看log时&#xff0…

Django开发中常用的命令总结

1. 创建一个Django Project#使用下面的命令可以创建一个projectdjango-admin.py startproject mysite #创建好之后可以看到如下的pro... 1. 创建一个Django Project 1 2 3 4 5 6 7 8 9 10 11 #使用下面的命令可以创建一个project django-admin.py startproject mysite #创…

xml解析-jaxp添加结点

jaxp添加结点 eg&#xff1a; //在第一个下面添加nv / 1.创建解析器工厂 * 2.根据解析器工厂创建解析器 * 3.解析xml返回document * * 4.得到第一个p1 * -得到所有p1使用item方法得到第一个p1 * * 5.创建sex标签 createElement * 6.创建文本 createTextNode * 7.把文本添加到se…

leetcode107. 二叉树的层次遍历 II

给定一个二叉树&#xff0c;返回其节点值自底向上的层次遍历。 &#xff08;即按从叶子节点所在层到根节点所在的层&#xff0c;逐层从左向右遍历&#xff09;例如&#xff1a; 给定二叉树 [3,9,20,null,null,15,7],3/ \9 20/ \15 7 返回其自底向上的层次遍历为&#xff1a…