有时,使用命令浏览 Linux 文件系统可能会很痛苦,尤其是对于新手而言。通常,我们主要使用cd(更改目录)命令来移动 Linux 文件系统。
本教程将解释一组Linux命令:“ pushd ”和“ popd ”,它们用于高效导航 Linux 目录结构。它们存在于大多数 shell 中,例如 bash、tcsh 等。
在 Linux 中pushd 和 popd 命令是如何工作的
pushd和popd根据“ LIFO ”(后进先出)原则工作。在这个原则中,只允许两种操作:将一个项目压入堆栈,以及从堆栈中弹出一个项目。
pushd 在栈顶添加一个目录,popd 从栈顶删除一个目录。
要显示目录堆栈(或历史记录)中的目录,我们可以使用dirs命令,如图所示。
- [linuxmi@localhost ~/www.linuxmi.com/linuxmi]$dirs
- ~/www.linuxmi.com/linuxmi
- 或者
- [linuxmi@localhost ~/www.linuxmi.com/linuxmi]$dirs -v
- 0 ~/www.linuxmi.com/linuxmi
pushd 命令- 将目录路径放入/添加到目录堆栈(历史记录)中,稍后允许您导航回历史记录中的任何目录。当您将目录添加到堆栈时,它也会回显历史(或“堆栈”)中存在的内容。
这些命令显示了 pushd 的工作原理:
- [linuxmi@localhost ~/www.linuxmi.com]$pushd /var/www/html/
- /var/www/html ~/www.linuxmi.com
- [linuxmi@localhost /var/www/html]$pushd /home/linuxmi/web/wp-admin
- ~/web/wp-admin /var/www/html ~/www.linuxmi.com
- [linuxmi@localhost ~/web/wp-admin]$pushd /mnt/hgfs
- /mnt/hgfs ~/web/wp-admin /var/www/html ~/www.linuxmi.com
- [linuxmi@localhost /mnt/hgfs]$pushd /test
- /test /mnt/hgfs ~/web/wp-admin /var/www/html ~/www.linuxmi.com
pushd - 将目录添加到堆栈
从上面输出中的目录堆栈可以看到(目录索引顺序相反):
- [linuxmi@localhost /test]$dirs -v
- 0 /test 是目录堆栈中的第五个 [索引为 0]。
- 1 /mnt/hgfs 是目录堆栈中的第四个 [索引为 1]。
- 2 ~/web/wp-admin 是目录堆栈中的第三个 [索引为 2]。
- 3 /var/www/html 是目录堆栈中的第二个 [索引为 3]。
- 4 ~/www.linuxmi.com 是目录堆栈中的第一个 [索引为 1]。
或者,我们可以使用表单中的目录索引pushd +# 或 pushd -#将目录添加到堆栈中。要进入/var/www/html,我们将输入:
- [linuxmi@localhost /test]$pushd +3
- /var/www/html ~/www.linuxmi.com /test /mnt/hgfs ~/web/wp-admin
注意在此之后,堆栈内容将发生变化。因此,从前面的示例中,要进入~/www.linuxmi.com,我们将使用:
- [linuxmi@localhost /var/www/html]$pushd +1
- ~/www.linuxmi.com /test /mnt/hgfs ~/web/wp-admin /var/www/html
pushd - 用号码导航目录
popd 命令——从堆栈或历史记录的顶部删除一个目录。要列出目录堆栈,请键入:
- [linuxmi@localhost ~/www.linuxmi.com]$popd
- /test /mnt/hgfs ~/web/wp-admin /var/www/html
要从目录堆栈中删除目录,请使用popd +# 或 popd -#,在这种情况下,我们将键入以下命令以删除/mnt/hgfs:
- [linuxmi@localhost /test]$popd +1
- /test ~/web/wp-admin /var/www/html
popd – 从堆栈中删除目录
在本教程中,我们解释了用于导航目录结构的“pushd ”和“ popd ”命令。