文档章节

高效的浏览 Linux 目录结构:pushd和popd命令

问题终结者
 问题终结者
发布于 2017/08/18 23:58
字数 686
阅读 14
收藏 0
导读 有时候,通过命令来在 Linux 文件系统导航是一件非常痛苦的事情,特别是对于一些新手。通常情况下,我们主要使用cd(改变目录)命令在 Linux 文件系统之间移动。

高效的浏览 Linux 目录结构:pushd和popd命令高效的浏览 Linux 目录结构:pushd和popd命令
在这个教程中,我们将讨论两个相关的命令:pushd和popd,使用它们可以高效的浏览 Linux 目录结构。这两个命令在大多数 shell ,比如 bash、tcsh 中都存在。

pushd 和 popd 命令在 Linux 系统中如何工作

pushd和popd命令根据 ‘LIFO’(后进先出)原则工作。在这个原则之下,只有两个操作是允许的:把一个目录压入栈,以及把一个目录弹出栈。

pushd命令会增加一个目录到栈顶,而popd命令会从栈顶移除一个目录。

为了显示目录栈中(或历史)的目录,我们可以使用下面展示的dirs命令:

$ dirs
或
$ dirs -v

高效的浏览 Linux 目录结构:pushd和popd命令高效的浏览 Linux 目录结构:pushd和popd命令

dirs- 显示位于目录栈中的目录

pushd命令:将一个目录路径添加到/放入目录栈(历史)中,之后,你可以浏览位于目录栈(历史)中的任意目录。当把一个新的目录入栈时,会打印出当前位于栈中的所有目录。

下面这些命令会展示这个命令是如何工作的:

$ pushd  /var/www/html/
$ pushd ~/Documents/
$ pushd ~/Desktop/
$ pushd /var/log/

高效的浏览 Linux 目录结构:pushd和popd命令高效的浏览 Linux 目录结构:pushd和popd命令

pushd-添加新目录入栈

根据上面输出的目录栈可知(目录索引按倒序排列):

  • /var/log是目录栈中的第五个目录,索引为 0
  • ~/Desktop/是第四个,索引为 1
  • ~/Document/是第三个,索引为 2
  • /var/www/html是第二个,索引为 3
  • ~是第一个,索引为 4

另外,我们也可以使用目录索引的形式pushd +#或pushd -#来添加目录入栈。为了进入目录~/Documents,我们可以输入:

$ pushd +2

高效的浏览 Linux 目录结构:pushd和popd命令高效的浏览 Linux 目录结构:pushd和popd命令

pushd-通过数字浏览目录

注意,经过上一步操作以后,栈的内容便发生了改变。所以,要从上面的例子中进入目录/var/www/html,我们应该使用下面的命令:

$ pushd +1

高效的浏览 Linux 目录结构:pushd和popd命令高效的浏览 Linux 目录结构:pushd和popd命令

pushd-通过数字浏览目录

popd命令-从栈顶或历史中移除一个目录。为了列出目录栈中的所有目录,只需输入:

$ popd

为了从目录栈中移除一个目录,我们可以使用popd +#或popd -#命令,在这时,我们需要输入下面的命令来移除目录~/Documents:

$ popd +1

高效的浏览 Linux 目录结构:pushd和popd命令高效的浏览 Linux 目录结构:pushd和popd命令

popd-从栈中以移除目录

via: https://www.tecmint.com/pushd-and-popd-linux-filesystem-navigation/

作者:Aaron Kili 译者:ucasFL 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

原文来自:http://www.linuxprobe.com/pushd-and-popd.html

本文转载自:

共有 人打赏支持
问题终结者
粉丝 12
博文 766
码字总数 106657
作品 0
运维
如何在Linux下环境下快速切换工作目录

在Linux命令行下,我们经常需要在一个目录下执行某些操作在跳转到另外的目录下,也就是使用我们熟悉的cd命令,基本上接触过命令行的人,第一个认识的命令都是cd,了解cd命令会对我们工作效率...

我是偶哦
2016/06/01
123
0
linux另类切换路径方式pushd和popd

pushd 切换到指定路径 popd 回到上次的目录 ====================================== pushd可以切换到后面指定的路径,顺便累积堆栈目录 堆栈:这里把pushd累积的目录称为堆栈 [root@wing e...

CrazyWing
2017/11/21
0
0
静态编译ffmpeg

静态编译ffmpeg 这两天折腾了一下完全静态编译ffmpeg,期望通过这种方式实现编译出来的ffmpeg能够在各个linux发现版上运行。进而可以延伸到编译出来完全静态的依赖ffmpeg库的应用程序,从而简...

张旭0512
2016/10/14
247
0
移植命令和库到海思相关芯片

编译fw_printenv工具: make ARCH=arm CROSSCOMPILE=arm-hisiv300-linux- hi3521aconfig make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux- make ARCH=arm CROSS_COMPILE=arm-hisiv300-linu......

baiweibi
2017/12/24
0
0
交叉编译OpenCV2.3.1

编译这个库真他麻烦,明明工作重点不是编译OpenCV库,但是时间就偏偏耗在这里,从昨天晚上到现在终于编译成功,说说编译的过程。 我使用的环境linux mint 不记得几了。 编译器arm-linux-gnu...

mengshige1988
2013/03/31
0
2

没有更多内容

加载失败,请刷新页面

加载更多

20180920 rzsz传输文件、用户和用户组相关配置文件与管理

利用rz、sz实现Linux与Windows互传文件 [root@centos01 ~]# yum install -y lrzsz # 安装工具sz test.txt # 弹出对话框,传递到选择的路径下rz # 回车后,会从对话框中选择对应的文件传递...

野雪球
今天
1
0
OSChina 周四乱弹 —— 毒蛇当辣条

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 达尔文:分享花澤香菜/前野智昭/小野大輔/井上喜久子的单曲《ミッション! 健?康?第?イチ》 《ミッション! 健?康?第?イチ》- 花澤香菜/前野智...

小小编辑
今天
7
3
java -jar运行内存设置

java -Xms64m #JVM启动时的初始堆大小 -Xmx128m #最大堆大小 -Xmn64m #年轻代的大小,其余的空间是老年代 -XX:MaxMetaspaceSize=128m # -XX:CompressedClassSpaceSize=6...

李玉长
今天
3
0
Spring | 手把手教你SSM最优雅的整合方式

HEY 本节主要内容为:基于Spring从0到1搭建一个web工程,适合初学者,Java初级开发者。欢迎与我交流。 MODULE 新建一个Maven工程。 不论你是什么工具,选这个就可以了,然后next,直至finis...

冯文议
今天
2
0
RxJS的另外四种实现方式(四)——性能最高的库(续)

接上一篇RxJS的另外四种实现方式(三)——性能最高的库 上一篇文章我展示了这个最高性能库的实现方法。下面我介绍一下这个性能提升的秘密。 首先,为了弄清楚Most库究竟为何如此快,我必须借...

一个灰
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部