在本文中,我们将向你展示如何使用pushd命令与popd命令浏览系统的目录树,教你这两个命令的基本用法。push与popd是允许你使用目录堆栈并在Linux和其他类似Unix的操作系统中更改当前工作目录的命令,尽管push与popd是非常强大且有用的命令,但它们却被低估并且很少使用。

目录堆栈

目录堆栈是你先前导航到的目录的列表,可以使用dirs命令查看目录堆栈的内容,使用pushd命令更改目录时,目录会添加到堆栈中,而popd命令会删除目录。

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

使用pwd命令可以找到当前所在的目录。

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

push、popd和dirs是shell的内置函数,每个shell的行为可能略有不同,我们将介绍命令的Bash内置版本。

pushd命令基本用法

pushd命令的语法如下:

pushd [OPTIONS] [DIRECTORY]

例如,要将当前目录保存到目录堆栈的顶部并更改为/var/www,应输入:

~$ pushd /var/www

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

/var/www ~

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

让我们向堆栈添加另一个目录:

/var/www$ pushd /opt

/opt /var/www ~

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

/opt$ pushd -n /usr/local

由于当前目录(始终位于顶部)没有更改,因此/usr/local目录从堆栈的顶部开始添加:

/opt /usr/local /var/www ~

推入式接受两个选项,+N和-N,它们允许你导航到堆栈的第N个目录,+N选项更改为堆栈列表的第N个元素,从零开始从左到右计数,当使用-N时,计数方向是从右到左。

为了更好地说明这些选项,让我们打印当前目录堆栈:

/opt$ dirs -l -v

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

0  /opt

1  /usr/local

2  /var/www

3  /home/ywnz

如果要更改到/var/www目录,并将其置于堆栈顶部,则将使用以下方法之一。

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

pushd +2

从下到上计数时,/var/www目录的索引为1:

pushd -1.

当不带任何参数使用时,push将切换前两个目录,并使新的前一个成为当前目录,这与使用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 ~

与推送相同,popd还接受+N和-N选项,可用于删除堆栈的第N个目录:

/opt$ popd +1

/usr/local ~

结论

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

相关主题

linux popd 命令,在Linux系统中的Pushd命令与Popd命令,教你这两个命令的基本用法...相关推荐

  1. 5个找出Linux中“二进制命令”描述和系统中位置的方法

    在数千个 Linux 系统上的命令/程序中,知道给定命令的类型和目的以及其在系统上的位置(绝对路径)对于新手来说可能是一个挑战. 知道命令/程序的一些细节不仅有助于 Linux 用户掌握大量命令,还能 ...

  2. unix和linux命令_Linux / Unix系统中SSH命令的用法

    unix和linux命令 Any security-minded Linux user will always use SSH protocol when connecting to servers. ...

  3. linux查找二进制命令绝对路径,5个找出Linux中“二进制命令”描述和系统中位置的方法...

    在数千个 Linux 系统上的命令/程序中,知道给定命令的类型和目的以及其在系统上的位置(绝对路径)对于新手来说可能是一个挑战. 知道命令/程序的一些细节不仅有助于 Linux 用户掌握大量命令,还能 ...

  4. linux mysql 僵尸进程_Linux 系统中僵尸进程

    Linux 系统中僵尸进程和现实中僵尸(虽然我也没见过)类似,虽然已经死了,但是由于没人给它们收尸,还能四处走动.僵尸进程指的是那些虽然已经终止的进程,但仍然保留一些信息,等待其父进程为其收尸. 僵尸 ...

  5. linux java 僵尸进程_Linux 系统中僵尸进程

    Linux 系统中僵尸进程和现实中僵尸(虽然我也没见过)类似,虽然已经死了,但是由于没人给它们收尸,还能四处走动.僵尸进程指的是那些虽然已经终止的进程,但仍然保留一些信息,等待其父进程为其收尸.配图源 ...

  6. linux 软键盘输入密码,Linux_Linux系统中使用屏幕键盘的方法,屏幕键盘可以作为实体键盘输 - phpStudy...

    Linux系统中使用屏幕键盘的方法 屏幕键盘可以作为实体键盘输入的替代方案.在某些时候,屏幕键盘显得非常需要. 比如, 你的键盘刚好坏了:你的机器太多,没有足够的键盘:你的机器没有多余的接口来连接键盘 ...

  7. Linux第一本书 第八章 系统中的软件管理

    1.Linux中软件包的类型 1)DEB  ##UB linux DBElinux 2)RPM   ##redhat centOS fadora 3)bz2 | gz | xz   ## 需要源码安装 ...

  8. erp服务器安装Linux,在Ubuntu 18.04系统中安装Dolibarr ERP/CRM的步骤

    本文将介绍在服务器Ubuntu 18.04系统中安装Dolibarr ERP/CRM的步骤,该软件支持Windows.BSD.Mac.Solaris.Linux平台.Dolibarr是一款非常有能力的 ...

  9. 【linux】进程优先级、nice系统中的nice值和nice time,top中的PR和ps中的PRI

    出处:https://blog.csdn.net/u010317005/article/details/80531985 linux内核目前实现了6中调度策略(即调度算法), 用于对不同类型的进程进行 ...

最新文章

  1. Numpy入门教程:07. 随机抽样
  2. 21 款 yyds 的 IDEA插件
  3. 第十六届的无线信标-2021-线圈参数测试和仿真
  4. linux tar命令 打包 解压
  5. 关于Nginx参数路径问题的问题
  6. 如何才能避免聚会尬聊
  7. Windows 环境安装 RabbitMQ
  8. Web开发实用网站资源
  9. Linkedin如何避免封号
  10. 我的2017OKR - 年中回顾
  11. 全国计算机建模三等奖,喜报 | 建院学子喜获2019年第十三届全国大学生结构设计竞赛三等奖...
  12. PS 2020版本放大工具无法鼠标左右拖动精细放大的解决方案
  13. java.lang.IllegalArgumentException: requirement failed: indices should be one-based and in ascending
  14. c/c++文本单词查询
  15. LeetCode 246/247/248 中心对称数
  16. win2003服务器性能工具,win2003服务器安全一键配置工具
  17. 传真百科:传真通讯技术的发展历史
  18. 由酷6员工猝死想到的:IT民工 我该拿什么拯救你
  19. ResRep Lossless CNN Pruning via Decoupling Remembering and Forgetting 论文学习
  20. Debian7升级glibc至2.15

热门文章

  1. Mathtype全文公式大小一致调整
  2. 【机器学习】决策树算法
  3. 传神成进博会唯一指定智能翻译硬件提供商 力助无障碍沟通
  4. iOS中去除 Warning警告
  5. T-SQL 根据年月日创建DateTime
  6. 《VMware 网络技术:原理与实践》—— 3.2 以太网
  7. 关于mysql的wait_timeout参数 设置不生效的问题
  8. Tomcat内存设置详解
  9. 从菜鸟到专家的五步编程语言学习法
  10. 公用表表达式(CTE)的递归调用