pushd和popd是允许您使用目录堆栈并在Linux和其他类似Unix的操作系统中更改当前工作目录的命令。尽管pushd和popd是非常强大和有用的命令,但它们却被低估并且很少使用。

在本教程中,我们将向您展示如何使用pushd和popd命令导航系统的目录树。

目录堆栈

目录堆栈是您先前浏览过的目录的列表。使用dirs命令可以看到目录堆栈的内容。使用pushd命令切换到目录时,目录会添加到堆栈中,而使用popd命令会删除目录。

当前工作目录始终位于目录堆栈的顶部。 当前工作目录是用户当前正在其中的目录文件夹。每次与命令行交互时,您都在一个目录中工作。

pwd命令可让您找出当前所在的目录。

在文件系统中导航时,使用Tab键自动完成目录名称。在目录名称的末尾添加斜杠是可选的。

pushd,popd和dirs是shell内置程序,在不同的shell中其行为可能略有不同。我们将介绍命令的Bash内置版本。

pushd命令

pushd命令的语法如下:pushd [OPTIONS] [DIRECTORY]

例如,要将当前目录保存到目录堆栈的顶部并更改为/var/www,您可以输入:~$ pushd /var/www

成功后,以上命令将打印目录堆栈。 ~是我们执行pushd命令的目录。代字号~表示主目录。/var/www ~

pushd首先将当前工作目录保存到堆栈的顶部,然后导航到给定目录。由于当前目录必须始终位于堆栈的顶部,因此更改后,新的当前目录将移至堆栈的顶部,但不会保存在堆栈中。要保存它,您必须从中调用pushd。如果您使用cd切换到另一个目录,则堆栈的顶部将丢失,

让我们向堆栈中添加另一个目录:/var/www$ pushd /opt/opt /var/www ~

要禁止默认更改目录,请使用-n选项。例如,要将/usr/local目录添加到堆栈中但不更改到堆栈中,请输入:/opt$ pushd -n /usr/local

由于当前目录(始终位于顶部)未更改,因此将/usr/local目录添加到堆栈顶部的第二位置:/opt /usr/local /var/www ~

pushd接受两个选项,+N和-N,可用于导航到堆栈的Nth目录。 +N选项更改为堆栈列表的Nth元素,从零开始从左到右计数。使用-N时,计数方向是从右到左。

为了更好地说明这些选项,让我们打印当前目录堆栈:/opt$ dirs -l -v

输出将显示目录堆栈的索引列表:0 /opt

1 /usr/local

2 /var/www

3 /home/myfreax

如果要更改到/var/www目录,并将其移到堆栈的顶部,将使用以下之一。

从上到下(或从左到右)计数时,目录的索引为2。pushd +2

从下到上计数时,/var/www目录的索引为1。pushd -1.

不带任何参数使用时,pushd将切换前两个目录,并使新的前一个成为当前目录。这与使用cd -命令时相同。

popd命令

popd命令采用以下形式:popd [OPTIONS]

不带参数使用时,popd从堆栈中删除顶层目录,并导航到新的顶层目录。

假设我们有以下目录堆栈:/opt /usr/local /var/www /etc/nginx ~

如果运行popd命令,它将从堆栈中删除/opt并切换到/usr/local目录:/opt$ popd

输出将显示新的目录堆栈:/usr/local /var/www /etc/nginx ~

-n选项禁止更改默认目录,并从堆栈中删除第二个项目:/opt$ popd -n/usr/local /etc/nginx ~

与pushd相同,popd也接受+N和-N选项,这些选项可用于删除堆栈的Nth目录。/opt$ popd +1/usr/local ~

结论

通常,您将使用cd命令从一个目录移动到另一个目录。但是,如果您在命令行上花费大量时间,则pushd和popd命令将提高您的生产率和效率。

如果您有任何问题或反馈,请随时发表评论。

linux popd 命令,Linux中的pushd推入和popd弹出命令相关推荐

  1. 电脑总是时不时弹出命令行窗口 Community Catalog 苹果手机铃声设置教程

    电脑总是时不时弹出命令行窗口 电脑总是时不时弹出命令行窗口 任务eng.可执行 开始初始化 我的sql安装器正在运行在 团体模式. 初始化产品要求 结束 初始化 不能够连接到远处的主机.目录下载失败了 ...

  2. cad老是弹出命令中发生异常_CAD出现致命错误的解决方法

    CAD是一种对作图环境要求较高的软件,有些时候开启的程序过多,或者打开了一些带有恶意代码的网页会使得AutoCAD出现异常:有的时候操作失误或打开的图形过大,也会导致错误出现:有的时候,版本转换.块的 ...

  3. cad解除块的快捷命令_CAD中的块能否修改?能!一个命令可快速解决

    "块"在CAD中用得比较多,为了提高制图的效率,在CAD中往往定义了各种各样的"块",比方说:对于机械制图,为了快速插入表面粗糙度,通常将表面粗糙度符号定义为一 ...

  4. html中如何写一个提示框,html弹出公告 html中点击列表文字弹出提示框?

    怎么在网页制作中给主页设置弹出公告,要CSS布局HTML小编今天和大家分享在主页打... 无标题文档 45565 把style属性加给你的弹窗标签就可以了,宽高位置均可变. 哪位前辈高手有html的窗 ...

  5. Android学习问题:关于AlertDialog中自定义布局带有的EditText无法弹出键盘

    最近在用到AlertDialog的时候,自定义了其布局文件,其中带有EditText,但是发现在手机上使用的时候,点击EditText却没有弹出键盘,在网上搜索了下,看到有好几种解决方法,试过其中一些 ...

  6. bootstrap中的模态框(modal,弹出层)

    bootstrap中的模态框(modal),不同于Tooltips,模态框以弹出对话框的形式出现,具有最小和最实用的功能集. 务必将模态框的 HTML 代码放在文档的最高层级内(也就是说,尽量作为 b ...

  7. uni-app中同一个页面如何设置多个弹出层(弹框)

    uni-app前端项目开发中,在使用uni-popup弹出层组件时,通常同一个页面要用到多个弹出层.提示窗口.提示框等等.那么怎么样注册多个弹出层而不冲突呢? 下面我以注册两个弹出层为例来说一下,注册 ...

  8. android中底部弹窗,Android实现从底部弹出的Dialog示例(一)

    一.概述 先给大家看一下效果图: 点击中间的显示弹框按钮,从底部弹出来一个对话框,用户可以点击拍照或者从相册选择进行相应的操作,下面看看怎么实现. 二.代码实现 主页面布局文件,很简单,一个按钮,响应 ...

  9. ExtJs中的表单提交和页面弹出表单

    1.表单提交 代码:   form.jsp页面: <formid="panel22"action="getTest.jsp"method="po ...

最新文章

  1. android viewflipper图片轮播,使用ViewFlipper实现图片轮播
  2. C核心技术手册(五)
  3. netty系列之:轻轻松松搭个支持中文的服务器
  4. php函数从数组中取出指定的数目,PHP数组函数
  5. 地雷会炸到自己吗_回顾自己曾经的往事 ——记双语学习有感
  6. 重要的,是那些训练中被多次遗忘的样本
  7. java treemap_Java TreeMap pollFirstEntry()方法与示例
  8. Linux中断(interrupt)子系统之四:驱动程序接口层 中断通用逻辑层
  9. [转]阿里云配置mysql远程连接
  10. 【转载】全球天然气探明储量
  11. Scala学习之 java.net.BindException: 无法指定被请求的地址: Service 'sparkDriver' failed
  12. 主机托管与DRaaS的真正区别原来是这样 你猜对了吗?
  13. FFmpeg源代码简单分析-通用-结构体分析-AVCodec
  14. 咖说丨去中心化借贷的逻辑和商业基础
  15. 龙须酥nbsp;[我的饮食情节#9352;]
  16. 关于Javascript的学习心得
  17. 怎样用计算机弹出声音,电脑没声音怎么调出来
  18. 鸿蒙杀戮手机电脑版,鸿蒙杀戮单职业
  19. IT职场求生法则(3)- 部门经理及副总适用法则
  20. FSAA (FullSceneAnti-aliasing)全屏抗锯齿技术

热门文章

  1. java文件重命名有趣实验
  2. vim的强大,vim设置和插件的使用,脱离windows才是王道
  3. 文本文件和二进制文件的区别
  4. Elasticsearch Pipeline 详解
  5. 重磅 | 数据库自治服务DAS论文入选全球顶会SIGMOD,领航“数据库自动驾驶”新时代
  6. 万师傅使用云产品,上手简单、开箱即用、省去运维烦恼
  7. Michael Jordan:当下的AI其实都是伪“AI” 1
  8. 五位专家跟你讲讲为啥Python更适合做AI/机器学习
  9. 企业打开Redis的正确方式,来自阿里云云数据库团队的解读
  10. Ampere Altra Max 对比测试数据公布,性能能效双领先